编写服务器控件时,向页面写入脚本的方法

转载 2007年09月29日 22:31:00
在编写服务器控件时,经常需要向页面发送大量的客户端代码。一般情况下我们可以直接用output.Write() 写到页面,但这样会带来一个几个问题:
      1、如果同一个页面有几个这样的服务器控件,是不是同样的客户端代码要被写到客户端好几次?
      2、如果让页面自动运行相应的客户端脚本? 
    其实这些问题ASP.NET里已提供了解决方法。
    在Page类里有几个方法:
    RegisterClientScriptBlock      可以向页面中发送客户端代码块(当然可以不仅仅是脚本,也可以是其它的文本),这段代码会被写到Form里的开始部分
   
IsClientScriptBlockRegistered   根据一个页面级的Key来判断某段由RegisterClientScriptBlock发送的客户端代码是否已被发送到了客户端。
    RegisterStartupScript    可以向页面中发送客户端代码块,这段代码会被写到Form里的结束部分。这样就可以如其名称一样,在页面加载完成后写入一段自动运行的代码
    IsStartupScriptRegistered  根据一个页面级的Key来判断某段由RegisterStartupScript发送的客户端代码是否已被发送到了客户端
    通过上面的几个方法就可以解决上述的两个问题。

   示例:
        //生成客户端脚本
        privatestring GetClientScript()
        {

            return @"

??????????????????????? function ClientFunction()
??????????????????????? {
??????????????????????????? 具体的实现
??????????????????????? }

??????????????????? ";

        }
 
        //生成自动运行的客户端脚本
        privatestring GetClientStartUpScript()
        {

            return @"

??????????????????????????? 具体的实现

??????????????????? ";

        }
 
        //在预呈现事件里加入客户端脚本
        protectedoverridevoid OnPreRender(EventArgs e)
        {
            if(!Page.IsClientScriptBlockRegistered("ClientScriptKey1"))
                Page.RegisterClientScriptBlock("ClientScriptKey1",GetClientScript());
            Page.RegisterStartupScript("ClientScriptKey2",GetClientStartUpScript());
            base.OnPreRender(e);
        }
       ToolTips:
     向页面注册客户端脚本要在预呈现里完成,如果在Redner里来做则不会启作用。
     在写大段的客户端脚本时,可以在文本前加入@,这样,引起来的字符器的换码序列将“不”被处理,这样就可以轻松写出字符串。如果要在字符器里包括一个双引号,请使用两对双引号。
 

Monkey API学习与脚本编写小记

1. Monkey脚本格式 1.1 Monkey脚本主要包含两部分,一部分是头文件信息,一部分是具体的monkey命令。 1.2 文件格式如下,e .g. //头文件,控制monkey发送消息的参数,...
  • swordgirl2011
  • swordgirl2011
  • 2016年03月18日 00:38
  • 4459

模拟HTTP请求实现网页自动操作及数据采集

网页可分为信息提供和业务操作类,信息提供如新闻、股票行情之类的网站。业务操作如网上营业厅、OA之类的。当然,也有很多网站同时具有这两种性质,像微博、豆瓣、淘宝这类网站,既提供信息,也实现某些业务。普通...
  • taonull
  • taonull
  • 2015年08月15日 18:05
  • 12734

监控linux中CPU 内存 磁盘数据的shell脚本(图文)

分享一个shell脚本,用来监控linux服务器的CPU、内存、磁盘数据等信息,有需要的朋友参考下。 在linux下监控cpu、内存、磁盘数据等信息,用shell脚本是最合适不过的了。 以下脚本...
  • liu_cyu
  • liu_cyu
  • 2014年12月15日 14:17
  • 3474

ASP.NET服务器控件和客户端脚本

  • 2010年05月15日 15:25
  • 401KB
  • 下载

公共处理函数(字符操作、html、中文汉字、服务器控件、脚本

  • 2010年03月23日 16:38
  • 37KB
  • 下载

服务器控件的处理方式 页面的生命周期

服务器控件事件处理方式 1)通过表单提交,也能找到后台相应的事件处理。 2)通过回调函数(JavaScript中的回调函数),    也能找到相应的后台事件处理。(ASP.NET回发机制)    需要...
  • WangBurn
  • WangBurn
  • 2015年09月13日 08:44
  • 264

设置自定义ASP.NET服务器控件TagPrefix的几种方法

方法一、在Web.config中配置,具体做法为:在Web.config文件的System.web节中添加如下代码 1pages> 2  controls> 3     add asse...
  • Yelbosh
  • Yelbosh
  • 2013年12月16日 15:54
  • 956

JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法

jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面效果,easyui的相关地址是:http://jquery-easyui.wikidot.co...
  • scq503
  • scq503
  • 2015年03月05日 17:53
  • 602

asp.net服务器控件button先执行js再执行后台的方法

关于button这个服务器控件,我一直想减少它向服务器提交数据。那些检测,还是在客户端实现就好了。 这就需要javascript,但是我发现仅仅有javascript还是不够的。button服务器控...
  • sz1103
  • sz1103
  • 2016年05月05日 17:26
  • 287

asp.net服务器控件button先执行js再执行后台的方法

以下可以直接跳过 控件这东西在asp.net中非常好用,极大加快了开发速度。特别是服务器控件这种东西。当年我学网站开发的时候就是从asp.net学起的,而且一度以为网站的原理就是这样而已——朦,...
  • Yelbosh
  • Yelbosh
  • 2013年11月13日 15:46
  • 850
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写服务器控件时,向页面写入脚本的方法
举报原因:
原因补充:

(最多只允许输入30个字)