2014-01-20 43 views
4

我已經創建了asp.net按鈕單擊事件呼叫ASP.NET「ButtonClick」有如下功能後調用javascript函數:如何之前和

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

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

謝謝。

+2

爲什麼以前....? –

+0

我想在調用asp.net函數之前顯示一個div。 – sohaib

+1

@阿米爾:有時候有人沒有時間進行研究,必須在很短時間內提交任務。所以請不要阻止某人下次提問。請保持健康的環境。謝謝你。 –

回答

0

對於之前調用它,你可以考慮使用的onload功能,像這樣的例子:

<body onload="myFunction()"> 

對於調用它之後,就鏈接到執行JS的onClick按鈕?

我不認爲我很理解你的意圖。

1

您可以第一時間打電話給你的javascript功能按鈕的事件的OnClientClick通過你的函數名。

<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); 
2

您可以調用Java紙條功能使用OnClientClick()服務器端前點擊:

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"); 
} 
8

是的,它是可能的,這裏是簡單的例子: 的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。

不要忘記將<asp:ScriptManager runat="server"></asp:ScriptManager>在你的aspx文件。

希望它能幫助

2

把這個頁面上,並確保你有一個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 
    } 
} 
0

前:

<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,則不需要添加腳本經理。