我是说,是不是只能是用response.write("<Script>alert('test')</script>");
每次这么写好麻烦啊,是不是有啥简单的方法我不知道的??

解决方案 »

  1.   

    动态输出javascript脚本在Page类中有一个ClientScript属性,它是 ClientScriptManager的实例,这个类是在asp.net2.0中新增的。ClientScriptManager有如下几个常用方法:
    RegisterClientScriptBlock 方法:向 Page 对象注册客户端脚本。
    RegisterStartupScript方法:向 Page 对象注册启动脚本。
    ClientScriptManager 类通过键string和Type来唯一标识脚本。具有相同类型的键和Type的脚本识为同一脚本。
    RegisterClientScriptBlock 方法输出的javascript脚本代码块靠近<form>标记的开始标记,而RegisterStartupScript方法输出的 javascript脚本代码块靠近<form>标记的结束标记,了解这一点对于控制动态添加的客户端脚本的时间是非常有利的。
    例子:
     string successMsg = @"<script type='text/javascript'>alert('" + result + "');window.location.href='Register.aspx'</script>";
     ClientScript.RegisterClientScriptBlock(this.GetType(), "success", successMsg);
    对ASP.NET 2.0中客户端脚本的使用方法进行一个简单的总结性概述。
    1.使用 OnClientClick属性打开客户端脚本,使用方法如下:
    js脚本:
    <script language="javascript" type="text/javascript">
    function opensite()
    ...{
        window.open("http://beckshanling.javaeye.com/admin/blogs/new");
        return true; 
    }
    </script>
      调用方法:<asp:Button ID="Button1" OnClientClick="opensite()" runat="server" Text="打开站点" />
    2.动态注册js 脚本,下面介绍一下以下四个方法的含义与使用:以下几种方法都是派生自ClientScriptManager类,研究一下里面有几十个方法,而且有些重载了.1) RegisterClientScriptBlock方法:将js区块添加到页面顶端,你可以以字符串形式创建这些js代码,然后将它传递给添加网页的方法。其对应的包含方法IsClientScriptBlockRegistered()
    使用方法如下:
    //动态创建js文件<script language="javascript" type="text/javascript">
      string info = "";
      info += "function showName(UserName)";
      info += "{alert(’你的名字是:’+UserName);}";
      // 判断myName是否已经被注册
      if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
      ...{
      //动态注册js
       Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
      }
    注意:可以查看一下生成页面的代码究竟怎样的?
    2)RegisterClientScriptInclude 方法:通过外部添加引用js脚本。其对应的包含方法IsClientScriptIncludeRegistered()
    假如有一段这样的 info.js脚本,如下所示:
    function showCity(City)
      ...{
      alert("我爱我的:"+City);
      }
    引用它的例子,如下:
    //动态注册info.js的javascript文件
    //判断是否已被注册
      if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "myMessage"))
      ...{
      //若没有被注册,刚将Info.js动态注册
       Page.ClientScript.RegisterClientScriptInclude("myMessage", "js/info.js");
      }
    注意一下每一个方法的参数就可以了。
    3)RegisterStartupScript方法:将js区块添加当网页完成加载,但是在引发网页的onload事件之前,就会执行。其对应的包含方法 IsStartupScriptRegistered。
    使用它的例子如下:
    string info = " ";
      if (!Page.ClientScript.IsStartupScriptRegistered("welcome"))
      ...{
      Page.ClientScript.RegisterStartupScript(this.GetType(), "welcome", info);
      }
    4)RegisterOnSubmitStatement方法:添加执行以响应网页onsubmit事件的js。其对应的包含方法IsOnSubmitStatementRegistered。
    使用它的例子如下:
    string info = "return confirm(’你确认删除?’);";
      if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "myPage"))
      ...{
       Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "myPage", info);
      } 
      

  2.   

    ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language='javascript'>alert('" + this.msg + "');</script>");
    ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "", "", true); 
      

  3.   

    怪我没说清楚,
    我是说,如果有啥直接的服务器端方法就好了,这样重复拼js多累啊
    比如Reponse.alert('test');
      

  4.   

    你可以写一个组件,包装一下.引用然后
    js.alert("xxx");