我想知道哪個函數會首先執行OnCommand或OnClientClick?哪個函數在asp.net中首先執行?
<asp:LinkButton ID="btnHRApprove" runat="server" Text="Approve" OnCommand="btnApprove_Click" OnClientClick="return ValidatePayrate()" CommandArgument="HR" CssClass="adLink" />
我想知道哪個函數會首先執行OnCommand或OnClientClick?哪個函數在asp.net中首先執行?
<asp:LinkButton ID="btnHRApprove" runat="server" Text="Approve" OnCommand="btnApprove_Click" OnClientClick="return ValidatePayrate()" CommandArgument="HR" CssClass="adLink" />
OnClientClick
首先執行,但勢必會只有一個控制器,而
OnCommand
也在客戶端側執行的,而是調用服務器雙面方法和可以結合到幾個按鈕具有不同編號:s,然後通過一個開關殼體處理,以確定哪個命令是這樣的:
<asp:Button id="btnHRApprove"
Text="approve"
CommandName="ValidatePayrate"
OnCommand="btnApprove_Click"
runat="server"/>
<asp:Button id="btnSubmit"
Text="Submit"
CommandName="Submit"
OnCommand="btnApprove_Click"
runat="server"/>
然後,在後面的代碼(在本例C#),則可以使用一個SWITC小時的情況下,以檢查其指令下達,而不是它被點擊按鈕:
void btnApprove_Click(Object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "ValidatePayrate":
//Your ValidatePayRate code here
break;
case "Submit":
// Submit code here
break;
default:
// Default
break;
}
}
如果客戶端JavaScript的關閉,會的OnClientClick不火和按需必火,而不是
在Web應用程序中工作時,始終要記住方法和調用是爲客戶端編寫的,始終首先執行。
所以在你的情況下,方法ValidatePayrate()將被觸發,如果它返回false,那麼服務器端函數將不會被執行。
OnClientClick="return ValidatePayrate()"
這將首先執行,是根據它的返回值下一個函數將執行, 如果它返回false,那麼繼續執行,否則
OnCommand="btnApprove_Click"
將執行停止。因爲它是在客戶端側執行
這將是'OnClientClick' – Mairaj
您可以隨時通過自行測試(在您的後端代碼中)/調試器(在JavaScript代碼中)。 –