Asp.net中的JavaScript使用之一动态创建javaScript

 

我们都知道JavaScript是运行在客户端的脚本,一般是包含在aspx页面文件中,但是在实际开发中经常会遇到这样一些问题:比如服务器端的代码需要动态生成或调用JavaScript代码,或者JavaScript代码需要调用服务器端的程序代码,这时候有些初学者就摸不着头脑了,不知怎样办才好(其实写此文的初因就是有朋友在我的qq群中问到了这个问题,因为这个问题较为常见,但是一两句话也说不清楚,所以就有了此文。)

通常境况下,js脚本不是包含在aspx中的script标签中,就是放在.js文件中然后被引用,这两点大家应该都很清楚,我就不在这里赘述了,那么假设服务器端需要动态的把js代码传送给浏览器,这该怎么处理呢?这就需要使用ClientScriptManager类来动态的创建javaScript,关于ClientScriptManager类的详细描述,大家可以参看msdn文档(http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.aspx)我在这里用msdn文档中的例子做个简单说明

 

 

 

根据实际情况我们选择调用ClientScriptManager对象的下列方法将js代码加到页面中

1RegisterClientScriptBlock
        
该方法能够把js代码加入到页面的开始处。并且如果你有多个js代码使用RegisterClientScriptBlock方法注册到客户端,则它们的调用顺序并不一定和它们的注册顺序一致,如果你非常关心这些js代码的执行顺序,请用stringBuilder把它们合并到一起,作为整体然后用该方法注册到客户端。(The RegisterClientScriptBlock method adds a script block to the top of the rendered page. The script blocks are not guaranteed to be output in the order they are registered. If the order of the script blocks is important, use a StringBuilder object to gather the scripts together in a single string, and then register them all in a single client script block.

2RegisterClinetScriptInclude
   
此方法类似上面的方法,不一样的地方是它动态添加的是一个js文件的引用

3RegisterStartupScript
   
根据msdn文档上的说明这段脚本的添加到页面的时机应该在页面加载完毕之后,OnLoad事件触发之前。和上述方法一样如果你有多个js代码使用RegisterClientScriptBlock方法注册到客户端,则它们的调用顺序并不一定和它们的注册顺序一致,如果你非常关心这些js代码的执行顺序,请用stringBuilder把它们合并到一起,作为整体然后用该方法注册到客户端。(The script block added by the RegisterStartupScript method executes when the page finishes loading but before the page's OnLoad event is raised. The script blocks are not guaranteed to be output in the order they are registered. If the order of the script blocks is important, use a StringBuilder object to gather the scripts together in a single string, and then register them all in a single client script block

4RegisterOnSubmitStatement

此方法动态添加的js代码会在页面被提交(Submit)之前执行。

为了确保我们所添加的js代码没有重复,ClientScriptManager为我们提供了相对应的4个方法来做判断:

IsClientScriptBlockRegistered

IsClientScriptIncludeRegistered

IsOnSubmitStatementRegistered

IsStartupScriptRegistered

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值