调用 Page 类的 RegisterClientScriptBlock 方法

解决方案 »

  1.   

    允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块。
    [Visual Basic]
    Public Overridable Sub RegisterClientScriptBlock( _
       ByVal key As String, _
       ByVal script As String _
    )
    [C#]
    public virtual void RegisterClientScriptBlock(
       string key,
       string script
    );
    [C++]
    public: virtual void RegisterClientScriptBlock(
       String* key,
       String* script
    );
    [JScript]
    public function RegisterClientScriptBlock(
       key : String,
       script : String
    );
    参数
    key 
    标识脚本块的唯一键。 
    script 
    发送到客户端的脚本的内容。 
    备注
    客户端脚本刚好在 Page 对象的 <form runat= server> 元素的开始标记后发出。脚本块是在呈现输出的对象被定义时发出的,因此必须同时包括 <script> 元素的两个标记。
    通过使用关键字标识脚本,多个服务器控件实例可以请求该脚本块,而不用将其发送到输出流两次。
    具有相同 key 参数值的任何脚本块均被视为重复的。
    注意   请记住在脚本周围加入 HTML 注释标记,以便在请求的浏览器不支持脚本时脚本不会呈现。
    示例
    [Visual Basic, C#] 下面的示例说明如何将 RegisterClientScriptBlock 方法与 IsClientScriptBlockRegistered 一起使用。如果尚未注册在代码声明块中编写的 ECMAScript(这一点由 IsClientScriptBlockRegistered 测试),则将进行 RegisterClientScriptBlock 调用。
    [Visual Basic] 
    <html>
      <head>
         <script language="VB" runat="server">
        Sub Page_Load( sender as Object,e as EventArgs) 
                    'Form the script that is to be registered at client side.
            Dim scriptString as String = "<script language=JavaScript> function DoClick() {"
            scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<"
            scriptString += "/"
            scriptString += "script>"
          
                If(Not IsClientScriptBlockRegistered("clientScript"))
            RegisterClientScriptBlock("clientScript", scriptString)
            End If
         End Sub
         </script>
      </head>
      <body topmargin="20" leftmargin="10">
         <form id="myForm" runat="server">
            <input type="text" id="show" style="width=200">
          <input type="button" value="ClickMe" onclick="DoClick()">
         </form>
      </body>
    </html>
    [C#] 
    <html>
      <head>
        <script language="C#" runat="server">     public void Page_Load(Object sender, EventArgs e) {       // Form the script that is to be registered at client side.
           String scriptString = "<script language=JavaScript> function DoClick() {";
           scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<";
           scriptString += "/";
           scriptString += "script>";           if(!this.IsClientScriptBlockRegistered("clientScript"))
                  this.RegisterClientScriptBlock("clientScript", scriptString);
         }     </script>
      </head>
      <body topmargin="20" leftmargin="10">
         <form id="myForm" runat="server">
            <input type="text" id="show" style="width=200"> <input type="button" value="ClickMe" onclick="DoClick()">
         </form>
      </body>
    </html>
    但不一定在 <head>之间哦。
      

  2.   

    RegisterClientScriptBlock 方法我已经知道了,不过因为不是在head之间,我就没有用,现在我试了试,发现onload方法只要在页面中有就行.这样说也就可以满足要求了.哦!