zoukankan      html  css  js  c++  java
  • 20100513学习笔记:Asp.net 2.0 动态注册脚本的四种常用方法

    动态注册JS脚本时,来自ClientScriptManager类的,常用的四种方法有:

    (一)、RegisterClientScriptBlock方法

      将js区块添加到页面顶端,你可以以字符串形式创建这些js代码,然后将它传递给添加网页的方法。相对应的,判断是否已注册该脚本的方法为IsClientScriptBlockRegistered()

    前台相关代码:

    代码
    <body>
        
    <form id="form1" runat="server">
            
    <div style="text-align: center;">
                
    <div style=" 600px; padding: 20px 50px 20px 50px;">
                    
    <table style=" 100%;" class="Tb_Blank">
                        
    <tr>
                            
    <td>
                                ClientScriptManager类常用的四种方法
                            
    </td>
                        
    </tr>
                        
    <tr>
                            
    <td>
                                
    <table style=" 100%;" class="Tb_Common">
                                    
    <tr>
                                        
    <td style=" 35%;">
                                            RegisterClientScriptBlock方法
                                        
    </td>
                                        
    <td style=" 65%;">
                                            
    <asp:Button ID="btnTest" runat="server" Text="检测" OnClick="btnTest_Click" />
                                        
    </td>
                                    
    </tr>
                                
    </table>
                            
    </td>
                        
    </tr>
                    
    </table>
                
    </div>
            
    </div>
        
    </form>
    </body>

    后台相关代码:

    代码
            #region JS注册方法检测

            
    private void TestScriptRegister()
            {
                
    //动态创建js文件 
                  string info = @"function showDialog(){alert('测试RegisterClientScriptBlock');}";
                
    //判断myName是否已经被注册 
                  if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
                {
                    
    //动态注册js 
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
                }
                
    this.btnBlock.Attributes["OnClick"= "showDialog()";
            }

            
    #endregion

            
    protected void Page_Load(object sender, EventArgs e)
            {
                
    if (!IsPostBack)
                {
                      TestScriptRegister();
                }
            }

    查看页面源代码为:

    代码
    <body>
        
    <form name="form1" method="post" action="ForLinKeNan.aspx" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMQ9kFgICAw9kFgICAQ8PZBYCHgdPbkNsaWNrBQxzaG93RGlhbG9nKClkZA0HIswlstW+qXADqAH+bdo4hzp+" />
    </div>


    <script type="text/javascript">
    //<![CDATA[
    function showDialog(){alert('测试RegisterClientScriptBlock');}//]]>
    </script>

    <div>

        
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLJ9K2vDwK14deQBeSN2qREk5Pf28+KMun3E4nhjvXE" />
    </div>
            
    <div style="text-align: center;">
                
    <div style=" 600px; padding: 20px 50px 20px 50px;">
                    
    <table style=" 100%;" class="Tb_Blank">
                        
    <tr>
                            
    <td>
                                ClientScriptManager类常用的四种方法
                            
    </td>
                        
    </tr>
                        
    <tr>
                            
    <td>
                                
    <table style=" 100%;" class="Tb_Common">
                                    
    <tr>
                                        
    <td style=" 35%;">
                                            RegisterClientScriptBlock方法
                                        
    </td>
                                        
    <td style=" 65%;">
                                            
    <input type="submit" name="btnBlock" value="检测" onclick="showDialog();" id="btnTest" />
                                        
    </td>
                                    
    </tr>
                                
    </table>
                            
    </td>
                        
    </tr>
                    
    </table>
                
    </div>
            
    </div>
        
    </form>
    </body>

    附注:使用RegisterClientScriptBlock,其JS函数,放置在页面的顶部,一般位于form后

    (二)、RegisterStartupScript方法

      将js区块添加当网页完成加载,但是在引发网页的onload事件之前,就会执行。相对应的,判断是否已注册该脚本的方法为IsStartupScriptRegistered。

         该方法的使用,可类似上述的RegisterClientScriptBlock。唯一不同的是,相应的函数在页面底部,位于form结束标志前。

    (三)、RegisterClientScriptInclude方法

      通过外部添加引用js脚本。相对应的,判断是否已注册该脚本的方法为IsClientScriptIncludeRegistered()

     参照(一),前台相关代码:

        <asp:Button ID="btnInclude" runat="server" Text="检测" OnClientClick="return showInclude();" />

    ClientScriptManager.js函数代码为:

        function showInclude()
        {
            alert(
    '检测RegisterClientScriptInclude方法');
        }

    后台相关代码为:

    代码
           #region 检测RegisterClientScriptInclude方法

            
    if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "Include"))
           {
                  
    //若没有被注册,则将ClientScriptManager.js动态注册,注意路径
                    Page.ClientScript.RegisterClientScriptInclude(Page.GetType(), "Include", Page.ResolveUrl("~/JS/ClientScriptManager.js"));
           }

           
    #endregion

    (四)、RegisterOnSubmitStatement方法

      添加执行以响应网页onsubmit事件的js。相对应的,判断是否已注册该脚本的方法为IsOnSubmitStatementRegistered

    前台相关代码:

           <asp:Button ID="btnStatement" runat="server" Text="检测" />

    后台相关代码:

    代码
           #region 检测RegisterOnSubmitStatement方法

            
    string infoSubmit = "return confirm('你确认删除?');";
           
    if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "Submit"))
           {
                Page.ClientScript.RegisterOnSubmitStatement(
    this.GetType(), "Submit", infoSubmit);
           }

           
    #endregion
  • 相关阅读:
    学习源代码时的笨方法
    初步学习pg_control文件之十五
    初步学习pg_control文件之十四
    初步学习pg_control文件之十三
    fsync体会
    初步学习pg_control文件之十二
    初步学习pg_control文件之十一
    初步学习pg_control文件之十
    初步学习pg_control文件之九
    JS与原生OC/Swift相互调用总结
  • 原文地址:https://www.cnblogs.com/lybohe0807/p/1734674.html
Copyright © 2011-2022 走看看