我想要在我的代码中使用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