asp.net在后台页面(xxx.cs文件中)添加客户端脚本的方法总结

1、在页面的 Init 或 Load 事件中调用控件的 Attributes 集合的 Add 方法。例如:

TextBox1.Attributes.Add("onclick","alert('click')");

 

2、在按钮控件(ButtonLinkButton 和 ImageButton 控件)中,将 OnClientClick 属性设置为要执行的客户端脚本。例如:

Button1.OnClientClick = "alert('click')";

实际上,在前台页面可以直接设置 OnClientClick (注:如果为OnClientClick指定一个有返回值的js函数,需要有return。在写代码时,想在点击Button时阻止回传,于是在js函数中添加return false,然后OnClientClick = 函数名,但是这并没有阻止其回传,需要改为OnClientClick = return 函数名

 

3、通过RegisterClientScriptBlockRegisterStartupScript方法(刚发现者两个方法已过时)
 RegisterStartupScript(key, script)

RegisterClientScriptBlock(key, script)

这两个方法都接受两个字符串作为输入。第二个参数 script 是要插入到页面中的客户端脚本,包括 <script> 的起始标记和终止标记。第一个参数 key 是插入的客户端脚本的唯一标识符。

这两个方法唯一的不同之处在于从“何处”发送脚本块。RegisterClientScriptBlock() 在 Web 窗体的开始处(紧接着 <form runat="server"> 标识之后)发送脚本块,而 RegisterStartupScript() 在 Web 窗体的结尾处(在 </form> 标识之前)发送脚本块。

 

4、通过客户端回调 (封装了ajax)

 创建实现客户端回调的 ASP.NET 页与创建任何 ASP.NET 页类似,但也有如下这些区别。页的服务器代码必须:

实现 ICallbackEventHandler 接口。可以向任何 ASP.NET 网页添加此接口声明。
提供 RaiseCallbackEvent 方法的实现。此方法将被调用以对服务器执行回调。
提供 GetCallbackResult 方法的实现。此方法会将回调结果返回给客户端。

 此外,该页还必须包含执行以下操作的三个客户端脚本函数:

  • 一个函数调用帮助器方法,该方法执行对服务器的实际请求。在此函数中,可以首先执行自定义逻辑以准备事件参数,然后可以将一个字符串作为参数发送到服务器端回调事件处理程序。

  • 另一个函数由处理回调事件的服务器代码的结果调用并接收该结果,同时接受表示该结果的字符串。该函数称为客户端回调函数。

  • 第三个函数是执行对服务器的实际请求的 Helper 函数,当在服务器代码中使用 GetCallbackEventReference 方法生成对此函数的引用时,由 ASP.NET 自动生成该函数。

客户端回调及回发都是对起始页的请求,因此在 Web 服务器日志中将客户端回调及回发记录为页请求。

 最后,还需要一个客户端触发器来调用回调,以使服务器端与客户端的函数方法真正联系起来。asp.net提供了一个GetCallbackEventReference ()方法来构建所需的回调引用

具体使用方法见http://msdn.microsoft.com/zh-cn/library/ms178208(v=vs.80).aspx   《asp.net 高级程序设计》的“javascript与ajax技术”一章对这个方法的介绍也很清楚。

posted @ 2012-12-01 20:18  CodingBird  阅读(311)  评论(0编辑  收藏  举报