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

翻译|其它|编辑:郝浩|2007-09-30 10:19:55.000|阅读 907 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

在编写服务器控件时,经常需要向页面发送大量的客户端代码。一般情况下我们可以直接用output.Write() 写到页面,但这样会带来一个几个问题:

1、如果同一个页面有几个这样的服务器控件,是不是同样的客户端代码要被写到客户端好几次?

2、如果让页面自动运行相应的客户端脚本?

其实这些问题  ASP.NET  里已提供了解决方法。

  Page  类里有几个方法:

RegisterClientScriptBlock  可以向页面中发送客户端代码块(当然可以不仅仅是脚本,也可以是其它的文本),这段代码会被写到  Form  里的开始部分  IsClientScriptBlockRegistered  根据一个页面级的  Key  来判断某段由  RegisterClientScriptBlock  发送的客户端代码是否已被发送到了客户端。

RegisterStartupScript  可以向页面中发送客户端代码块,这段代码会被写到  Form  里的结束部分。这样就可以如其名称一样,在页面加载完成后写入一段自动运行的代码  IsStartupScriptRegistered  根据一个页面级的  Key  来判断某段由  RegisterStartupScript  发送的客户端代码是否已被发送到了客户端

通过上面的几个方法就可以解决上述的两个问题。

 

   示例:

 

        //生成客户端脚本

        privatestring GetClientScript()

        {

            return @" ";

 

        }

 

        //生成自动运行的客户端脚本

        privatestring GetClientStartUpScript()

        {

            return @" ";

 

        }

 

        //在预呈现事件里加入客户端脚本

        protectedoverridevoid OnPreRender(EventArgs e)

        {

            if(!Page.IsClientScriptBlockRegistered("ClientScriptKey1"))

                Page.RegisterClientScriptBlock("ClientScriptKey1",GetClientScript());

            Page.RegisterStartupScript("ClientScriptKey2",GetClientStartUpScript());

            base.OnPreRender(e);

        }

       ToolTips

向页面注册客户端脚本要在预呈现里完成,如果在  Redner  里来做则不会启作用。

在写大段的客户端脚本时,可以在文本前加入@,这样,引起来的字符器的换码序列将被处理,这样就可以轻松写出字符串。如果要在字符器里包括一个双引号,请使用两对双引号。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:CSDN

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP