Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以将jquery对话框与asp.net用户控件一起使用?_Jquery_Asp.net_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

是否可以将jquery对话框与asp.net用户控件一起使用?

是否可以将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"

我试图在jquery对话框弹出窗口中打开一个用户控件,但当我打开时,服务器端事件都不会触发,我猜UpdatePanel也会被禁用

以前有人遇到过这个问题,有没有办法确保用户控件按预期工作

这是我的密码。用户控件本身是一个图像上传程序,有三个更新面板,以及许多带有服务器端单击事件的按钮/图像按钮

<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')中。追加到('表单')