C# 从jQuery对话框按钮事件中单击ASP.NET按钮
我有以下ASP.NET标记:C# 从jQuery对话框按钮事件中单击ASP.NET按钮,c#,asp.net,jquery,jquery-dialog,C#,Asp.net,Jquery,Jquery Dialog,我有以下ASP.NET标记: <div id="myForm" title="My Form" style="display: none"> <span>You can see me!</span> <div style="display: none"> <asp:Button ID="btnSave" runat="server" Text="Button" OnClick="btnS
<div id="myForm" title="My Form" style="display: none">
<span>You can see me!</span>
<div style="display: none">
<asp:Button ID="btnSave" runat="server" Text="Button"
OnClick="btnSave_Click" />
</div>
</div>
<!-- called by an element click event elsewhere -->
<script type="text/javascript" language="javascript">
$("#myForm").dialog({
modal: true,
width: 500,
height: 200,
resizable: false,
buttons: {
"Cancel": function () {
$(this).dialog("close");
},
"Save": function () {
$(this).dialog("close");
// I want to call btnSave_Click (by DOM-clicking the button?)
}
}
});
$("#myForm").parent().appendTo("form:first");
</script>
。。。工作正常,但这是最好的解决方案吗?您可以使用btnSave.ClientId属性向javascript发送您要查找的控件的ID,然后可以执行类似的操作。如果希望btnSave控件注册为回发控件,则会触发代码隐藏中的“单击”事件
var myControl = document.getElementById('theclientidgoeshere')
myControl.click();
那就行了
如果你想做一个简单的回发,你可以这样做
this.document.form.submit();
但这不会为按钮注册任何事件
这是最好的吗?
对于.NET 3.5和更早版本,它是唯一“真正”安全的获取客户端ID的方法。使用jQuery,您可以在_btnSave上进行部分ID匹配,但我发现这对于将来的修改来说风险太大
.NET4.0确实引入了一个可能会有所帮助的选项
.NET 4.0客户端模式属性
在.NET 4.0中,您有一个可选属性,允许您选择如何创建客户端id。您可以使用可预测或静态选项将按钮id硬编码到JavaScript中。$(“#”)单击();
$("#<%=btnSave.ClientID %>").click();
我刚刚用这个解决方案更新了我的问题:),但对我来说它看起来不太好。这是最好的方法吗?对于.NET3.5和更早版本是的,这是最好的,也是唯一的解决方案。我将使用.NET4.0替代版本更新我的帖子
$("#<%=btnSave.ClientID %>").click();