问题在于,我在用户控件中有一个Modal PopUp Extender,它是从一个页面内的另一个用户控件调用,在一个母版页内。页面以动态方式加载第一个用户控件,当我想显示模态对话框时,它会将用户控件加载到占位符中,并在模态弹出用户控件加载时调用模态的show方法。
在模态中我有一些TextBoxes和一个Button来将一些数据保存到数据库中。
问题是Buton onClick事件根本不会触发。我尝试在模态控件的Onload事件中添加一个断点,但奇怪的是,如果我在父用户控件的Onthe load事件中放置另一个断点(持有Modal PopUp的那个),它就不会进入断点在父用户控件的OnLoad事件中正确停止。我需要使用事件处理程序,因为我调用存储过程将数据保存到数据库中。
请注意,我不想只关闭modalpopup窗口,我想验证一些文本框然后将一些数据保存到数据库中,这就是为什么我必须使用按钮的事件处理程序。
请求您的支持
答案 0 :(得分:0)
这是我在app中使用的一个函数,我需要一个模态对话框。这些按钮实际上是由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");
答案 1 :(得分:0)
问题是ModalPopupExtender属性OkControlID:在较新版本的工具包服务器端单击按钮的处理程序将不会执行,它将运行,而不是OnOkScript客户端代码。
为了恢复旧的行为,在我的情况下,我不得不从模态弹出扩展器声明标记中删除OkControlID属性。
希望它有所帮助。
答案 2 :(得分:0)
不知何故,将我的整个模式弹出框放在<asp:UpdatePanel>
之外,我已经为我解决了这个问题。我会说我对更新面板不是很熟悉,但是它有效!