【问题标题】:After jquery UI dialog close, postback on entire page doesn't workjquery UI对话框关闭后,整个页面的回发不起作用
【发布时间】:2011-12-01 15:48:03
【问题描述】:

我以这种方式打开 UI 对话框:

var $dialog = jQuery('#dialog');    
     $dialog.load('mySite.aspx');
     $dialog.dialog({
        autoOpen: false,
        title: 'Add New Contact Personel',
        modal: true,
        height: 350,
        width: 400,
        show: 'puff',
        hide: 'puff',
        close: function (event, ui) {
            $dialog.html('');
            $dialog.dialog('destroy');
        }
     });
    $dialog.dialog('open');

并且在我使用右上角的交叉关闭它后,所有其他未连接到 UI 对话框的按钮都不起作用,例如下面 gridview 中的 linkBut​​ton 失去了意义,在 firefox 中不起作用,在 chrom 中重定向到页面使用了哪个先前的 UI 对话框,但是当我刷新页面时,一切似乎都正常,直到我再次单击以打开 UI 对话框,然后所有其他链接都不再起作用。

<asp:GridView ID="userGridView" runat="server"
            AutoGenerateColumns="False"
            GridLines="None"
            AllowPaging="true"
            DataKeyNames="UserId"
            OnRowCommand="UserGridViewRowCommand">
            <Columns>
                <asp:BoundField DataField="UserId" Visible="false"/>
                <asp:BoundField DataField="FirstName" HeaderText="First Name" />
                <asp:TemplateField HeaderText="Actions" HeaderStyle-Width="75px" ItemStyle-HorizontalAlign="Center" >
                         <ItemTemplate>
                            <asp:LinkButton ID="ChartLinkBtn" ToolTip="go to EAS (user page)" CommandArgument='<%# Eval("UserId") %>' CommandName="User" runat="server"><img src="../Styles/icons/chart.png" style="border:0px" alt="text"/></asp:LinkButton>&nbsp;&nbsp;
                            <asp:LinkButton ID="DeleteLinkBtn" ToolTip="delete this user" CommandArgument='<%# Eval("UserId") %>' CommandName="Delete" runat="server"><img src="../Styles/icons/delete.png" style="border:0px" alt="text"/></asp:LinkButton>
                        </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

【问题讨论】:

  • 您是否遇到任何 javascript 错误?
  • 不,在 Firefox 中什么都不是,所有简单的链接都不起作用,就像无法点击一样,在 chrom 中每个链接都打开 UI 对话框的先前内容
  • 你有没有在 mySite.aspx 中引用 jquery - 我已经看到在对话框内容中引用 jquery 的新副本会删除所有现有事件的实例。
  • 没有 100% 我没有,我的主页参考来自母版页和这个 mySite.aspx 不是,这是简单的 aspx 页面。
  • 不工作everythink看起来像这样:href="javascript:__doPostBack('ctl00$MainContent$userGridView$ctl02$DeleteLinkBtn','')"

标签: jquery asp.net jquery-ui jquery-ui-dialog


【解决方案1】:

如果这有帮助,为什么不完全强制执行完整回发?

close: function (event, ui) {
        $dialog.html('');
        $dialog.dialog('destroy');
        __doPostBack(); //to perform a full postback
    }

或者试试这个(把它放在 javascript 标签中)...

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (evt, args) {
    var myDiv = $("#dialog").dialog({ autoOpen: false, modal: true, open: function (type, data) {
        $(this).parent().appendTo("form");
    }
    });
});

干杯!

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多