1

这里的问题是,我在用户控件中有一个模态弹出扩展器,它是从主页内的另一个用户控件调用的,在母版页内。页面动态加载第一个用户控件,当我想显示模式对话框时,它将用户控件动态加载到占位符中,并在加载模式弹出用户控件时调用模式的 show 方法。

在模态中,我有一些文本框和一个按钮来将一些数据保存到数据库中。

问题是按钮 onClick 事件根本不会触发。我尝试在模态控件的 Onload 事件中添加一个断点,但奇怪的是,如果我在父用户控件的 Onthe 加载事件(包含模态弹出窗口的那个)中放置另一个断点,它不会进入那里断点确实在父用户控件的 OnLoad 事件处正确停止。我需要使用事件处理程序,因为我在那里调用存储过程将数据保存到数据库中。

请注意,我不想只关闭 modalpopup 窗口,我想验证一些文本框然后将一些数据保存到数据库中,这就是为什么我必须使用按钮的事件处理程序。

谢谢你的支持

4

3 回答 3

0

这是我在需要模态对话框的应用程序中使用的功能。这些按钮实际上是由 Jquery 代码生成的,因此可以保证它们的事件被触发:

  $(function () {
           $(".addNew").dialog({
               autoOpen: false,
               width: 300,
               height: 300,
               modal: true,
               close: function (event, ui) {
           },
           buttons:
                   {
                       "Exclude Week": function () {

                           var cReason = $('#<%= ddlReasonCode.ClientID %> option:selected').text();
                           var Week = $('#<%= lblWeekChange.ClientID %>').text();

                           $.ajax(
                                   {
                                       type: "POST",
                                       url: "Ajax/ExcludeWeek.aspx",
                                       data: "week=" + Week + "&reasonCode=" + cReason,
                                       success: function (msg) {
                                           $('#resultDiv').text('Added to List');

                                       },
                                       error: function (x, e) {
                                           alert("The call to the server side failed. " + x.responseText);
                                       }
                                   }
                               );
                                   $(this).dialog("close");
                       },
                       "Cancel": function () {
                           $(this).dialog("close");
                       }
                   }
       });


   });

// 这是用于触发对话框的代码:

$(".addNew").dialog("open");
于 2012-10-04T19:04:07.193 回答
0

对于给定的场景可能已经晚了,但是在我的项目中升级 AjaxControlToolikit 版本后我遇到了同样的问题。

问题是 ModalPopupExtender 属性 OkControlID:在较新版本的工具包服务器端单击按钮的处理程序不会执行,它将运行,而是运行 OnOkScript 客户端代码。

为了恢复旧行为,就我而言,我必须从模态弹出扩展器声明标记中删除 OkControlID 属性。

希望能帮助到你。

于 2014-01-27T14:35:39.457 回答
0

不知何故,把我的整个模态弹出框放在外面<asp:UpdatePanel>我已经为我解决了这个问题。我会说我对更新面板不是很熟悉,但它确实有效!

于 2019-09-06T23:44:40.727 回答