这是我的先例实施:
在 example.aspx :
中<asp:Button ID="rejectButton" runat="server" Text="REJECT" OnClick="OnRejectButtonClick"/>
并在 example.aspx.cs :
中protected void OnRejectButtonClick(object sender, EventArgs e)
{
// a lot of stuff...
rejecter();
}
......这很有效。
现在我需要一个对话框来确认拒绝。现在我的代码是:
在 example.aspx :
中<asp:Button ID="rejectButton" runat="server" Text="REJECT" OnClientClick="return openDialog();"/>
<div id="dialog" title="Seleziona causa">
<p>... bla bla...</p>
</div>
<script>
$(function () {
$("#dialog").dialog({ autoOpen: false, modal: true, show: "blind", hide: "blind",
buttons: {
"Okay": function () {
OnRejectButtonClick; // DOESN'T WORK!
$(this).dialog("close");
},
"Annulla": function () {
$(this).dialog("close");
}
}
});
});
function openDialog() {
$("#dialog").dialog("open");
return false;
}
</script>
和 example.aspx.cs 未更改。
但是在这种变化之后,对OnRejectButtonClick事件的调用不再发生了。我该如何解决这个问题?
答案 0 :(得分:2)
你需要用jquery调用它。
//before you click the button you should set a global variable
serverEx = true;
$("#rejectButton").click();
在OnClientSciprt
拒绝按钮的方法中openDialog
function openDialog() {
if(serverEx)
return true;
$("#dialog").dialog("open");
return false;
}
像克里斯戴维斯所说的那样将ClientIDMode="Static"
添加到按钮中。
答案 1 :(得分:2)
如果您不想使用jquery,可以使用:
__doPostBack('<%= rejectButton.UniqueID %>', "");
所以你的代码将是这样的:
$(function () {
$("#dialog").dialog({ autoOpen: false, modal: true, show: "blind", hide: "blind",
buttons: {
"Okay": function () {
__doPostBack('<%= rejectButton.UniqueID %>', "");
$(this).dialog("close");
},
"Annulla": function () {
$(this).dialog("close");
}
}
});
});
答案 2 :(得分:0)
您可以尝试这样的事情:
__doPostBack('rejectButton','OnClick');
实际执行asp.net操作。