Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
带有ASP.NET按钮回发的用户控件上的jQuery UI对话框_Jquery_Asp.net_Jquery Ui - Fatal编程技术网

带有ASP.NET按钮回发的用户控件上的jQuery UI对话框

带有ASP.NET按钮回发的用户控件上的jQuery UI对话框,jquery,asp.net,jquery-ui,Jquery,Asp.net,Jquery Ui,我有一个jQueryUI对话框,它在我的aspx.page上运行得非常好 我的问题是我需要将页面的一部分移动到usercontrol中。我将div和jquery移动到一个用户控件。控件弹出良好,但服务器端控制火灾 这是我弹出对话框的代码 var $partyaddress = $('#addressinformationcontent').dialog({ autoOpen: false, modal: true,

我有一个jQueryUI对话框,它在我的aspx.page上运行得非常好

我的问题是我需要将页面的一部分移动到usercontrol中。我将div和jquery移动到一个用户控件。控件弹出良好,但服务器端控制火灾

这是我弹出对话框的代码

        var $partyaddress = $('#addressinformationcontent').dialog({
            autoOpen: false,
            modal: true,
            height: 450,
            width: 850,
            title: 'Party Address Information'
        });

        $('#addressopener').click(function () {
            $('#addressinformationcontent').parent().appendTo($("form:first"));
            $partyaddress.dialog('open');
            return false;
        });
对话框中弹出的我的div是:

<div id="addressinformationcontent">

<asp:UpdatePanel ID = "updatePanelAddress" runat="server">

<ContentTemplate>

//some asp controls here and a asp.net submit button

/ContentTemplate>

</asp:UpdatePanel>

</div>

//此处有一些asp控件和asp.net提交按钮
/内容模板>

我想我理解这个问题。jquery使用DOM将对话框移动到表单标记之外,我需要将它们添加回来。我在click函数中的行将其追加回“form”,但usercontrol没有form标记。奇怪的是,当我第一次弹出对话框时,我必须按下对话框上的一个按钮来加载表单字段,这样可以很好地加载表单字段。在对话框上进行第一次回发后,所有服务器端控件都停止工作。我不知道如何解决这个问题。如果您正在阅读较旧的答案,任何帮助都将不胜感激。。。无视

我想我知道你现在的问题是什么。。。我在jquerydialog中也遇到了同样的问题。我从来没有抽出时间来修理它,所以我用了其他的技巧

你可以

a) 在对话框中使用常规html控件,在hiddenfields中使用javascript/jquery技巧。。。(不会详细说明,因为这有点麻烦,如果你错过了一些东西,调试将花费很长时间)

b) 使用jquerytools中的覆盖而不是对话框,方法与您现在尝试使用对话框的方法相同


如果您正在阅读较旧的答案。。。无视

我想我知道你现在的问题是什么。。。我在jquerydialog中也遇到了同样的问题。我从来没有抽出时间来修理它,所以我用了其他的技巧

你可以

a) 在对话框中使用常规html控件,在hiddenfields中使用javascript/jquery技巧。。。(不会详细说明,因为这有点麻烦,如果你错过了一些东西,调试将花费很长时间)

b) 使用jquerytools中的覆盖而不是对话框,方法与您现在尝试使用对话框的方法相同


此外,为了在对话框中正确触发回发事件,应在单击事件外部设置以下代码行

$('#addressinformationcontent').parent().appendTo($("form:first"))
示例代码将被删除

$(function () {
      $('#addressinformationcontent').parent().appendTo($("form:first"))
      $("#addressinformationcontent").dialog(
      {
         autoOpen: false,
         ...
       });
});
若您想在服务器端回发后保持jquery对话框打开,那个么需要稍微调整一下。这里就是一个例子

i:在代码隐藏文件中创建一个变量

protected string PostBackOption ="";
ii:在页面加载或页面预呈现事件上添加ispostback条件

if (Page.IsPostBack)
{
   PostBackOption = "$(\"#addressinformationcontent\").dialog(\"open\");";
}
iii:在js脚本中添加变量作为

var $partyaddress = $('#addressinformationcontent').dialog({
        autoOpen: false,
        modal: true,
        height: 450,
        width: 850,
        title: 'Party Address Information'
    });

<%=PostBackOption %>
var$partyaddress=$('#addressinformationcontent')。对话框({
自动打开:错误,
莫代尔:是的,
身高:450,
宽度:850,
标题:“当事人地址信息”
});

iv:这样,您的对话框在回发时不会消失。

还应在click事件外部设置以下代码行,以便在对话框内正确触发回发事件

$('#addressinformationcontent').parent().appendTo($("form:first"))
示例代码将被删除

$(function () {
      $('#addressinformationcontent').parent().appendTo($("form:first"))
      $("#addressinformationcontent").dialog(
      {
         autoOpen: false,
         ...
       });
});
若您想在服务器端回发后保持jquery对话框打开,那个么需要稍微调整一下。这里就是一个例子

i:在代码隐藏文件中创建一个变量

protected string PostBackOption ="";
ii:在页面加载或页面预呈现事件上添加ispostback条件

if (Page.IsPostBack)
{
   PostBackOption = "$(\"#addressinformationcontent\").dialog(\"open\");";
}
iii:在js脚本中添加变量作为

var $partyaddress = $('#addressinformationcontent').dialog({
        autoOpen: false,
        modal: true,
        height: 450,
        width: 850,
        title: 'Party Address Information'
    });

<%=PostBackOption %>
var$partyaddress=$('#addressinformationcontent')。对话框({
自动打开:错误,
莫代尔:是的,
身高:450,
宽度:850,
标题:“当事人地址信息”
});

iv:这样,在回发的情况下,您的对话框不会消失。

Mybe,因为您使用的是UpdatePanel。我尝试删除更新面板,但没有区别。addressopener是一个超链接控件,它工作得很好并弹出对话框。对话框中的服务器端回发控件不会启动。Mybe,因为您正在使用UpdatePanel,我尝试删除更新面板,但没有区别。addressopener是一个超链接控件,它工作得很好并弹出对话框。对话框中的服务器端回发控件不会触发。我无法将$(“#addressinformationcontent').parent().appendTo($($(“form:first”))移动到click事件之外,因为我有多个对话框。如果我把它移到外面,那么只有第一个被添加回表单。我喜欢您关于在代码隐藏中添加回发条件的想法。我无法将$('#addressinformationcontent').parent().appendTo($($(“form:first”))移动到click事件之外,因为我有多个对话框。如果我把它移到外面,那么只有第一个被添加回表单。我喜欢您关于在代码隐藏中添加回发条件的想法。我会试一试的。