我希望LinkButton弹出一个jQuery UI对话框,提示用户确认操作。如果用户点击OK,那么我希望通过回发到服务器继续操作。
我最终创建了两个链接:一个是常规HTML,它调用我的确认对话框。另一个是隐藏的常规LinkButton服务器控件,如果用户确认对话框,我想调用它。
这两个链接看起来像这样:
<a id="preEnterOperations" href="#">
Enter Operations
</a>
<asp:LinkButton ID="lnkEnterOperations" runat="server"
OnClick="lnkEnterOperations_Click" Style="display:none">
Enter Operations
</asp:LinkButton>
这是我的JavaScript:
$(function () {
$('#preEnterOperations').on('click',
function (e) {
var confirmDialog = $('#enterOperationsConfirmationDialog');
confirmDialog.dialog({
modal: true,
buttons: {
Ok: function () {
confirmDialog.dialog("close");
confirmDialog.data('confirmed', '1');
$('#<%= lnkEnterOperations.ClientID %>').click();
},
Cancel: function () {
confirmDialog.dialog("close");
}
}
});
return false;
});
});
一切似乎都是对的。确认对话框按预期弹出。如果用户点击Ok,我可以看到我的Ok处理程序运行。但是行$('#<%= lnkEnterOperations.ClientID %>').click();
没有做任何事情!我在这条线上尝试了很多变化,效果总是一样的:没什么。
如果用户确认对话框,有人可以帮我看看如何执行LinkButton回发吗?
答案 0 :(得分:3)
您可以替换以下行:
$('#<%= lnkEnterOperations.ClientID %>').click();
使用:
__doPostBack('<%= lnkEnterOperations.UniqueID %>', '');
这应该可以解决问题。
答案 1 :(得分:2)
Ok: function () {
confirmDialog.dialog("close");
confirmDialog.data('confirmed', '1');
$('#<%= lnkEnterOperations.ClientID %>').click(function(){
__doPostBack('<%= lnkEnterOperations.UniqueID %>', '');
});
},
Cancel: function () {
confirmDialog.dialog("close");
}
可能这可以帮到你。
答案 2 :(得分:0)
您可以替换“ $('#&lt;%= lnkEnterOperations.ClientID%&gt;')。click(); ” 使用&lt;%= Page.ClientScript.GetPostBackEventReference(lnkEnterOperations,“”)%&gt;