【问题标题】:How to call a javascript function before and after button click event call in asp.net如何在asp.net中的按钮单击事件调用之前和之后调用javascript函数
【发布时间】:2014-02-09 05:44:48
【问题描述】:

我在 ASP.NET 中创建了“ButtonClick”函数,如下所示:

<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click"/>

我想知道,调用asp.net按钮点击函数前后是否可以调用javascript函数...???

谢谢。

【问题讨论】:

  • 我想在调用asp.net函数之前显示一个div。
  • @Amir:有时有人没有时间研究,不得不在很短的时间内提交任务。所以请不要阻止某人下次提出问题。请保持健康的环境。谢谢你。

标签: c# javascript jquery asp.net


【解决方案1】:

是的,这是可能的,这是一个简单的例子: 要调用的 Java 脚本函数。

<script type="text/javascript">
    function clientValidate() {
        alert("execute before");
        return true;
    }

    function executeAfter() {
        alert("execute after");
    }
</script>

这是按钮的快照

<asp:Button ID="btnLogin" runat="server" Text="Login" CausesValidation="true" OnClientClick="clientValidate()" onclick="btnLogin_Click"/>

注意属性onClientClick="clientValidate()",它会在按钮点击服务器之前触发脚本。

在服务器端:

protected void btnLogin_Click(object sender, EventArgs e)
        {
        ScriptManager.RegisterClientScriptBlock(this, GetType(), "none", "<script>executeAfter();</script>", false);
        }

注意executeAfter();,它会在服务器事件之后触发javascript执行。

不要忘记将&lt;asp:ScriptManager runat="server"&gt;&lt;/asp:ScriptManager&gt; 放在您的 aspx 文件中。

希望对你有帮助

【讨论】:

    【解决方案2】:

    把它放在你的页面上,并确保你有一个脚本管理器。这些代码将处理您的前后回发。

    var prm, postBackElement;
    if (typeof Sys != "undefined") {
        prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
    }
    
    function InitializeRequest(sender, e) {
        postBackElement = e.get_postBackElement();
        if (postBackElement.id == "btnLogin") {
            // before click codes
        }
    }
    function EndRequest(sender, e) {
        if (postBackElement.id == "btnLogin") {
            // after click codes
        }
    }
    

    【讨论】:

      【解决方案3】:

      之前:

      <script type="text/javascript">
          function executeBefore() {
              alert("execute before");   
          }
      </script>
      
      <asp:Button ID="btnLogin" runat="server" Text="Login" CausesValidation="true" OnClientClick="executeBefore()" onclick="btnLogin_Click"/>
      

      之后:

      <script type="text/javascript">
          function executeAfter() {
              alert("execute after ");    
          }
      </script>
      

      将此代码添加到您的服务器端事件:

      Page.ClientScript.RegisterStartupScript(GetType(), "none", "<script>executeAfter();</script>", false);
      

      如果您没有母版页,或者没有使用ajax,则无需添加ScriptManager。

      【讨论】:

        【解决方案4】:

        您可以在服务器端点击之前使用OnClientClick()调用Java脚本函数:

        aspx(设计)

        <html xmlns="http://www.w3.org/1999/xhtml">
        <head runat="server">
            <title></title>
            <script type="text/javascript">
                function Test() {
                    alert('client click');
                }
            </script>
        </head>
        <body>
            <form id="form1" runat="server">
            <div>
                <asp:Button Text="btn" runat="server" ID="btn" 
                                OnClick="btn_Click" OnClientClick="Test()" />
            </div>
            </form>
        </body>
        </html>
        

        .cs

         protected void btn_Click(object sender, EventArgs e)
         {
            Response.Write("Server Click");
         }
        

        【讨论】:

          【解决方案5】:

          您第一次可以在 Button 的 OnClientClick 事件中调用您的 javascript 函数并传递您的函数名称。

          <asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click" OnClientClick="return functionNAME();"/>
          

          第二次,在你的按钮点击事件btnLogin_Click调用js如下

          ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "script", "<script type='text/javascript'>functionNA();</script>", false);
          

          【讨论】:

            【解决方案6】:

            之前调用它,你可以考虑使用 onload 函数,比如这个例子:

            <body onload="myFunction()">
            

            事后调用,只需要链接按钮执行JS onClick?

            我觉得我不太明白你的意图。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2018-10-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多