[英]Calling C# Method Using Javascript
我正在嘗試使用 Javascript 在我的代碼中訪問名為“Button1_Click”的方法,我認為下面的代碼有問題,因為目前我必須單擊兩次才能觸發該方法,單擊一次不會觸發方法。
我的測試代碼:
// Javascript
<script type="text/javascript">
function CallMe() { document.getElementById('<%= ButtonHidden.ClientID %>').click(); }
</script>
// Markup
<asp:Button ID="ButtonVisible" runat="server" Text="Test Button"
OnClientClick="CallMe();"/>
<asp:Button ID="Button1" runat="server" style="display:none;" Text="Click"
OnClick="Button1_Click"/>
// Code Behind Method
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("http://google.com");
}
我錯過了什么嗎?
您可以使用按鈕的OnClientClick
屬性:
<asp:button id="Button1"
text="Test Button"
onclientclick="CallMe()"
runat="server" onclick="Button1_Click" />
然后你不需要另一個(隱藏的)按鈕。
然后,您的 CallMe() 方法應返回 true(如果一切正常)或 false(取消回發)。
而不是使用 javascript 為什么不簡單地為兩個按鈕分配相同的服務器點擊處理程序:
<asp:Button
ID="ButtonVisible"
runat="server"
Text="Test Button"
OnClick="Button1_Click" />
<asp:Button
ID="Button1"
runat="server"
style="display:none;"
Text="Click"
OnClick="Button1_Click" />
更新:
更好的解決方案是讓您的 javascript function 返回 boolean 值,具體取決於是否滿足將執行服務器處理程序的某些條件:
<script type="text/javascript">
function CallMe() {
if (some condition) {
return true; // allow the server to be called
}
return false;
}
</script>
然后同時使用OnClick
和OnClientClick
點擊按鈕:
<asp:Button
ID="ButtonVisible"
runat="server"
Text="Test Button"
OnClientClick="return CallMe();"
OnClick="Button1_Click" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.