日期:2013-09-04  浏览次数:20892 次

ASP.NET改变了我们的编程方法,使得开发BS程序更加简单。但如果大量使用服务器控件势必会造成网页频繁提交,操作极不友好,也增加了服务器的负担。把一些必要的验证工作放在客户端执行,只有通过验证时才进行提交,就可以大大减少网页的刷新次数。

例如当我们按下“删除”按钮时,先在客户端进行一下确认:弹出一个“是否真的要删除”的对话框。当用户按下“是”是才提交至服务器执行删除程序。如果按下否,则终止后绪的提交动作。提交是不要进行太多可考虑,因为服务器的按钮控件是会自动完成,现在我给大家介绍终止提交的方法:

在DHTML中,每一个事件的处理都可以用return false来终止后绪动作的执行。如<BODY oncontextmenu = “javascript: return false;”>可以禁止页面上的右键菜单。对于服务器的按钮来说,我们可以在第一次载入时(PageLoad)服务器端给它加入一个OnClick属性用来执行客户端角本: this.DelButton.Attribute.Add(”OnClick”, “javascript:return delConfirm();”);在用户按下“删除”按钮时,它会先执行客户的的delConfirm()函数。注意:红色字体的javascript:return (用来接收函数的返回结果)及;号(按钮的提交动作将以角本方式注册在止之;号之后,如果不用;号来隔开将会出现语法错误)是必须的。而在客户端的函数中必须要有返回结果,其中return false;将终止后面的角本操作,而其它返回结果将继续执行。

这样删除处理的完整方法如下:

服务器端:

private void Page_Load()

{

...

if (!this.IsPostBack)

{

...

this.delButton.Attribute.Add(“OnClick“, “javascript:return delConfirm();“);

...
}

...
}

...

private void delButton_Click(object sender, EventArgs e)

{

...
}

...

客户端:

...

<SCRIPT language=javascript>

function delConfirm()

{

return confirm(“你真的要删除吗?“);
}

</SCRIPT>

...