是否可以将jquery对话框与asp.net用户控件一起使用?
我试图在jquery对话框弹出窗口中打开一个用户控件,但当我打开时,服务器端事件都不会触发,我猜UpdatePanel也会被禁用 以前有人遇到过这个问题,有没有办法确保用户控件按预期工作 这是我的密码。用户控件本身是一个图像上传程序,有三个更新面板,以及许多带有服务器端单击事件的按钮/图像按钮是否可以将jquery对话框与asp.net用户控件一起使用?,jquery,asp.net,jquery-ui,jquery-ui-dialog,Jquery,Asp.net,Jquery Ui,Jquery Ui Dialog,我试图在jquery对话框弹出窗口中打开一个用户控件,但当我打开时,服务器端事件都不会触发,我猜UpdatePanel也会被禁用 以前有人遇到过这个问题,有没有办法确保用户控件按预期工作 这是我的密码。用户控件本身是一个图像上传程序,有三个更新面板,以及许多带有服务器端单击事件的按钮/图像按钮 <a href="#" id="imgDialog">Open Gallery</a> <div id="ImagePopup" style="display:none"
<a href="#" id="imgDialog">Open Gallery</a>
<div id="ImagePopup" style="display:none">
<uc1:ImageGallery ID="ImageGallery1" ImageSectionID="1" runat="server" />
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#imgDialog").click(, function (e) {
$('#ImagePopup').dialog({
bgiframe: true,
modal: true,
show: ("slide", { direction: "down" }, 200),
hide: ("slide", { direction: "up" }, 200),
showOpt: { direction: 'up' },
width: 700,
close: function (event, ui) {
}
});
e.preventDefault();
});
});
</script>
$(文档).ready(函数(){
$(“#imgDialog”)。单击(,函数(e){
$('#ImagePopup')。对话框({
bgiframe:是的,
莫代尔:是的,
显示:(“幻灯片”{方向:“向下”},200),
隐藏:(“幻灯片”{方向:“向上”},200),
showOpt:{方向:'向上'},
宽度:700,
关闭:功能(事件、用户界面){
}
});
e、 预防默认值();
});
});
我很乐意将控件移动到aspx页面,并在必要时使用iframe,但我想先检查一下
非常感谢问题在于,当您将服务器控件放入jQuery弹出窗口时,它将从
表单runat=“server”
中删除控件,并将其放置在表单外部
因此,由于控件不在runat=“server”表单中,服务器端事件将不会触发
此类问题的一种解决方法是在加载usercontrol后显式克隆包装器,并将其附加到表单runat=“server”
。这应该能解决你的问题
您可以使用Firebug或任何开发人员工具检查弹出窗口是否位于表单外部。问题是,当您将服务器控件放入jQuery弹出窗口时,它将从
表单runat=“server”
中删除控件并将其置于表单外部
因此,由于控件不在runat=“server”表单中,服务器端事件将不会触发
此类问题的一种解决方法是在加载usercontrol后显式克隆包装器,并将其附加到表单runat=“server”
。这应该能解决你的问题
您可以使用Firebug或任何开发人员工具检查弹出窗口是否位于表单外部。您需要将对话框附加到表单,以便触发事件。通过添加appendTo行来完成,如以下代码所示:
$("#imgDialog").click(, function (e) {
$('#ImagePopup').dialog({
bgiframe: true,
...........
close: function (event, ui) {
}
});
e.preventDefault();
$('#ImagePopup').parent().appendTo(jQuery("form:first"));
});
我使用了带有服务器控件的JueryUI对话框,包括用于文件上传的控件。我向你保证这是可能的
我不确定,但也许你的对话框只会打开一次。如果出现这种情况,请尝试定义close函数,如:
close: function (event, ui) {
$(this).remove();
}
您需要将对话框附加到表单,以便触发事件。通过添加appendTo行来完成,如以下代码所示:
$("#imgDialog").click(, function (e) {
$('#ImagePopup').dialog({
bgiframe: true,
...........
close: function (event, ui) {
}
});
e.preventDefault();
$('#ImagePopup').parent().appendTo(jQuery("form:first"));
});
我使用了带有服务器控件的JueryUI对话框,包括用于文件上传的控件。我向你保证这是可能的
我不确定,但也许你的对话框只会打开一次。如果出现这种情况,请尝试定义close函数,如:
close: function (event, ui) {
$(this).remove();
}
是的,你很到位-它是在表单之外创建的。我该如何明确地克隆包装器?我使用了克隆,这是一个错误的词在这里。。选择modalpopup并将其附加到表单中。$('#mdpopup')。附加到('form')是的,您可以当场看到-它是在表单外部创建的。我该如何明确地克隆包装器?我使用了克隆,这是一个错误的词在这里。。选择modalpopup并将其追加到表单..$('#mdpopup')中。追加到('表单')