c# - 与 jQuery UI 对话框交互后如何继续使用 asp.net 服务器端按钮单击方法?

标签 c# jquery asp.net jquery-ui jquery-ui-dialog

来自 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/

相关文章:

asp.net - 有没有办法在 ASP.NET MVC2 中使用 [AllowHtml]?

javascript - 按下拉所选项目过滤的数据表

c# - 使用 C# 阻止应用程序

c# - 需要帮助选择第二个子节点及其在 C# 中使用 XPath 的子节点

c# - 在 C# 中内联 CSS

javascript - 滚动到页面顶部时似乎无法向页眉/div 添加样式

javascript - 如何向 jquery 视差添加参数

c# - 尝试按如下方式访问母版页代码中的 telerik RadEditor 控件...它给出了一些错误

c# - 在多个项目中使用相同的数据库

jquery - 如何解决这个跨浏览器问题?