动态注册客户端脚本的方法

1、RegisterClientScriptBlock(Type type,string key,string script)

  该方法一字符串形式注册脚本,生成的脚本位于Web页面的开始处,<form>标签之后。执行该方法的时候,页面的其他元素可能还没有载入完毕,因此这个时候调用页面的元素

  会发生错误。

2、RegisterStartupScript(Type type,string key,string script)

  该方法注册的脚本位于Web页面的底部</form>标签之前,因此,可以灵活地使用页面元素。

3、Response.Write(string script)

  把脚本添加到html代码的顶部,即<!DOCTYPE>之前。

    参数:

      type:要注册脚本的类型

      key:要注册脚本的键

    script:要注册脚本文本的内容

例:

  if (this.txtdatetime.Value == DateTime.MinValue.ToString() || this.txtdatetime.Value == null || this.txtdatetime.Value == "")
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "key02", "<script>alert('请选择立项时间!');</script>");
            //Response.Write("<script>alert('请选择立项时间!');</script>");
            return;
        }

    由于Response.Write("<script>alert('');</script>");方法是在页面的顶部输出脚本,因此会破坏页面HTML结构,有时会造成JavaScript或

  CSS显示异常,因此在实际开发中不推荐使用。

4、Literal 控件

    我们还可以用<asp:Literal>控件替代

    this.Literal.Text="<script>alert('');</script>";

    控件Mode属性有3个值,分别3中用途

  以上4种向页面注册脚本的方式,一旦遇到<UpdatePanel>控件,全部失效,甚至报错。至少我在IE中测试如此。

5、ScriptManager.RegisterClientScriptBlock((Button)Button6,typeof(Button), "1", "alert('发送成功');location.href='firstzone.aspx';", true);    

     这么多人浏览了,怎么一点意见也没有?写的错了或是对了,又或者是写的不足,都没个人提醒啊?

posted @ 2012-02-25 12:56  玉面麒麟  Views(1891)  Comments(0Edit  收藏  举报