【问题标题】:UpdatePanel inside JQuery Dialog Not UpdatingJQuery对话框中的UpdatePanel未更新
【发布时间】:2013-09-16 13:54:20
【问题描述】:

我有一个控件,上面有几个更新面板。然后将控件加载到(非模态)JQueryUI 对话框中。在大多数情况下,这可以正常工作——我可以让控件上的按钮触发和更新控件的部分,这些部分最终将作为 JQueryUI 对话框的一部分显示给用户。

当事情混在一起时,问题就来了。在我的主页上,有一个链接可以重新打开主对话框并调用它以前的状态。最终这调用了一个简单的javascript:

function openDialog(id, name)
{
   // Tell asp.net code behind what we're trying load
   var formField = document.getElementById('<%= userControl1.idField.ClientID %>');
   formField.value = id;

   // Tell asp.net to refresh the contents
   __doPostBack('<%= userControl1.documentUpdatePanel.ClientID %>', '');

   $("#dialog-editDoc").dialog
        ({
            width: 400,
            resizable: true,
            open: function ()
            {
                // This is impotant for ASP.NET
                $(this).parent().appendTo($("form:first"));
                $(this).dialog("option", "title", "Editing Document - " + name);
            }
        });

}

这似乎工作正常,我在我的用户控件代码中获得了PageLoad() 事件,并且我能够适当地更改内容。但是,当对话框出现时,刚刚更改为 PageLoad() 的一部分的内容。

奇怪的是,用户控件上的按钮被单击,事件正确触发,并且我能够在显示对话框时进行更改。在显示之前(或显示状态)让对话框“更改状态”似乎有些困难。

那么,有人知道解决这个问题的方法吗?我尝试过的其他事情:

  • __doPostBack(...) 移动到open: 函数中——同样的问题。

编辑:

以下是用户控件在页面上的加载方式(它不在更新面板中,更新面板在文档编辑器控件中):

<div id="dialog-editDoc" class="dialogContent" title="{Context Sensitive}">
    <mylib:DocEditor ID="userControl1" runat="server" />
</div>  

【问题讨论】:

    标签: jquery asp.net jquery-ui updatepanel


    【解决方案1】:

    经过大量调试,我确定上面链接的代码在所有情况下都可以工作除了,当触发 JS 事件的链接/按钮/...位于UpdatePanel 中时。

    那么我是如何解决这个问题的。好吧,因为按钮已经在UpdatePanel 中,我可以附加到它的正常OnClick 事件,而不必担心整个页面刷新。在OnClick 事件中,我只是使用“标准”方式通过RegisterStartupScript 从代码隐藏调用JS 函数,例如:

    string JSFunction = "openDialog('id_goes_here','name_goes_here')";
    ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "runJS", jsFunction, true);
    

    奇怪的是,这似乎有效。不完全确定为什么。最终,JS 仍然完成所有工作,调用结构(通过调试器观察)是相同的。

    如果有人能解释为什么上述方法有效,而不仅仅是通过OnClientClick 直接调用 JS 函数,我会接受/赞成他们的答案,而不是我的。

    【讨论】:

      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      相关资源
      最近更新 更多