我需要在提交发生之前弹出一个jquery对话框作为确认。我不想总是弹出对话框,这取决于下拉列表的设置。
提交控件(我不能改变)是一个自定义控件,带有保存和取消按钮以及保存和取消按钮的处理程序。
因此,当用户从下拉列表中选择了一个特定项目时,我将使用jQuery将保存按钮(已由自定义控件呈现)的click事件(在客户端上)连接到js函数,我的showDialog()函数然后返回false(以防止回发)。
当用户单击对话框上的“是”按钮时,我现在需要调用__doPostBack来触发SaveButtons服务器端事件并使服务器端验证运行。
我有
eval($("#<%= hdnBtnPostback.ClientID %>").val());
在对话框中“是”按钮的处理程序中。
hdnPostBack字段包含以下结果:
Page.ClientScript.GetPostBackEventReference(mySaveCancelCustomControl, String.Empty)
毫无疑问,这不起作用。 mySaveCancelCustomControl是上面提到的自定义控件,它有两个用两个事件处理程序呈现的按钮,因此GetPostBackEventReference注定要失败。
我应该做些什么?
答案 0 :(得分:1)
您可以将按钮设置为对话框按钮,并在ID为HiddenButton的页面上放置一个asp.net按钮,并将其包装在样式为display:none;
的div中,以便按钮不可见。 (不得为Visible =“false”,以便呈现按钮)
在javascript对话框中添加一个具有单击隐藏按钮
效果的按钮jQuery("#dialog").dialog({
buttons: {
'ButtonText': function() {
__doPostBack('<%# HiddenButton.ClientID %>', '')
jQuery(this).dialog('close');
}
}
});
并将asp点击处理程序添加到隐藏按钮
<div style="display:none;">
<asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>
点击对话框按钮时,服务器端的点击事件(HiddenButton_Click)将会触发
希望这有助于我一直使用这种模式
ps如果ClientID在__doPostback()调用用户UniqueID中不起作用,我就无法记住它是什么。
答案 1 :(得分:0)
当您在客户端进行新的点击连接时,是否可以将当前的点击方法保存到临时变量中,然后从“是”按钮调用临时变量?