我想要在我的代碼中使用Javascript訪問一個名爲「Button1_Click」的方法,我認爲在我的代碼中存在一些問題,因爲目前我必須點擊兩次以便方法觸發,一次點擊不會觸發該方法。使用JavaScript調用C#方法
我的測試代碼:
// 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");
}
我缺少的東西?
其實發布的代碼是一個示例來演示問題,實際的javascript檢查如果表單是dirty或不如下: function checkDirty(){ var ok;如果(isDirty == 1){ ok = window.confirm(「Continue without saving?」); if(ok == true){document.getElementById('<%= Button1.ClientID%>')。click(); } else {return true; } } } – 2011-06-12 08:50:22
@Osama Mortada,在這種情況下,您可以使用'CallMe' javascript函數執行檢查並根據具體情況返回true或false。如果返回'true',它將繼續並調用服務器端處理程序。只需使用以下代碼:'OnClientClick =「返回CallMe();」'並且不要模擬點擊。 – 2011-06-12 08:52:55
@Darin Dimitrov:非常感謝你,它完全按照預期完美工作。這種方式比模擬點擊更清晰。 – 2011-06-12 09:25:29