来自 jQuery 菜鸟,任何帮助都将不胜感激,因为我已经浪费了太多时间,而截止日期很快就要到了。
内幕 - 我在 Intranet 工程应用程序中有一个 asp.net 表单,在某些情况下需要在按下提交按钮时弹出一个 jQuery 对话框。
在“特定情况下”,用户需要确认一个问题,表单需要继续提交包括为提交按钮的点击事件执行服务器端代码。
当“特定情况”不存在时,表单只需提交并执行提交按钮的 Click 事件的服务器端代码。 (与上面相同,但没有 jQuery 对话框。)
挑战似乎是:
- 当对话框关闭时,表单会提交,但显然*不是*像原始提交按钮引起的那样,因为唯一正在执行的服务器端代码是“Page_Load”。未调用“cmdSave_Click”(我也需要执行)。
这是对话框定义。 (在两次单击按钮时,我需要在服务器端 cmdSave_Click
方法最终需要的隐藏字段中粘贴一个值。)
var dlgTidPopup = $('#popupPnlTid').dialog({
resizable: false,
autoOpen: false,
draggable: false,
modal: true,
closeOnEscape: false,
title: 'Request for Target Identifier (TID)?',
buttons: {
"yes": function () {
$('#txtTidYes').val("1");
$('#userInputForm').unbind("submit").submit();
$(this).dialog('close');
},
"no": function () {
$('#txtTidYes').val("0");
$('#userInputForm').unbind("submit").submit();
$(this).dialog('close');
}
}
});
dlgTidPopup.parent().appendTo($('form:first'));
这里是提交部分。 if
语句确定对话框的外观以满足“这是特定情况吗?”的要求。要求。
$('#userInputForm').submit(function (event) {
if ($('#hdnSituationIsTid').val() == "1") {
event.preventDefault();
$('#popupPnlTid').dialog("open");
}
});
提交按钮看起来像:
<asp:ImageButton ID="ibtnSend" ImageUrl="../_common/Images/buttons/Send.gif"
runat="server" OnCommand="cmdSave_Click" CommandName="Send" CssClass="majorButton"
CausesValidation="false" />
这个问题的答案可能很简单,我只是缺乏知识。非常感谢任何指导。 (此外,我确实知道我已经搜索过 SO 并阅读了很多很多帖子,甚至根据其中许多帖子对我的代码进行了建模,但我还没有完全找到解决我的具体问题的方法。)
最佳答案
请参阅我对下面链接问题的回答,我使用隐藏的 asp:button
作为 callback
:
ASP.NET with jQuery popup dialog: how to post back on dialog closing
function showjQueryUIDialogOkBtnCallback(buttonToClick, dialogSelector, buttonTxt, isModal, width, height)
{
var buttonOpts = {};
buttonOpts[buttonTxt] = function () {
$("#" + buttonToClick).trigger('click');
};
buttonOpts['Cancel'] = function () {
$(this).dialog("close");
$(this).dialog('destroy');
}
$(dialogSelector).dialog({
resizable: false,
height: height,
width: width,
modal: isModal,
open: function (type, data) {
$(this).parent().appendTo("form"); //won't postback unless within the form tag
},
buttons: buttonOpts
});
$(dialogSelector).dialog('open');
}
关于c# - 与 jQuery UI 对话框交互后如何继续使用 asp.net 服务器端按钮单击方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221442/