簡體   English   中英

如何在asp.net中按鈕點擊事件調用之前和之后調用javascript函數

[英]How to call a javascript function before and after button click event call in asp.net

我在ASP.NET中創建了“ButtonClick”功能,如下所示:

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

我想知道,是否可以在調用asp.net按鈕單擊功能之前和之后調用javascript函數... ???

謝謝。

是的,這是可能的,這是一個快速示例:要調用的Java腳本函數。

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

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

這是按鈕的snapshoot

<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執行。

不要忘記在aspx文件中放置<asp:ScriptManager runat="server"></asp:ScriptManager>

希望它有所幫助

把它放在你的頁面上,確保你有一個腳本管理器。 這些代碼將處理您的前后回發。

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
    }
}

您可以在使用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");
 }

之前:

<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。

第一次在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);

為了以前調用它,您可以考慮使用onload函數,如下例所示:

<body onload="myFunction()">

為了之后調用它,只需鏈接按鈕來執行JS onClick?

我不認為我完全理解你的意圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM