【问题标题】:UpdatePanel inside Jquery dialog with form:firstJquery 对话框中的 UpdatePanel 与表单:first
【发布时间】:2014-12-17 15:42:51
【问题描述】:

我有这个dialog 里面有updatepanel,我想知道在SelectedIndexChanged 被解雇后如何关闭它

    <script>
$("[id*=senderBtnPopup]").click(function () {
            $("#senderDialog").dialog({
                title: "Sender Addresses",
                resizable: true,
                width: 1000,
                dialogClass: 'cssDialog'
            });
            //$("#senderDialog").parent().appendTo(jQuery("form:first"));
            return false;
        });
    </script>



<div id="senderDialog" style="display: none;">
<asp:UpdatePanel runat="server" ID="senderUpdatePanel" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:GridView runat="server" ID="clientAddresses" CssClass="tablecs"
                        AutoGenerateColumns="false" Width="100%" AllowPaging="true" PageSize="5"
                        OnPageIndexChanging="clientAddresses_PageIndexChanging" AllowSorting="true" OnSorting="clientAddresses_Sorting"
                        DataKeyNames="Id,DefaultAddress" AutoGenerateSelectButton="true"
                        OnSelectedIndexChanged="clientAddresses_SelectedIndexChanged" 
                        OnRowDataBound="clientAddresses_RowDataBound">
                        <Columns>
                            <asp:BoundField DataField="ContactName" HeaderText="Name" SortExpression="ContactName" />
                            <asp:BoundField DataField="PhoneNo" HeaderText="Phone" SortExpression="PhoneNo" />


                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:CheckBox runat="server" ID="defaultAddressChk" AutoPostBack="true" OnCheckedChanged="defaultAddress_CheckedChanged" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </ContentTemplate>
            </asp:UpdatePanel>
</div>


protected void clientAddresses_SelectedIndexChanged(object sender, EventArgs e)
        {
           //some lines..
//this one doesn't work.
            senderUpdatePanel.Update();
            //ScriptManager.RegisterStartupScript(this, GetType(), "dialog", "$(function(){closeDialog();});", true);
        }

【问题讨论】:

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


    【解决方案1】:

    你可以这样做:

    在您的客户端脚本中添加更新面板的结束请求句柄:

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    

    在 SelectedIndexChanged 服务器端句柄中向脚本管理器添加参数

    protected void clientAddresses_SelectedIndexChanged(object sender, EventArgs e)
    {
      //some lines..
      ScriptManager1.RegisterDataItem(clientAddresses, "OnSelectedIndexChanged");
    }
    

    管理结束请求客户端

    function EndRequestHandler(sender, args)
                {
                     var dataItems = args.get_dataItems()['<%= clientAddresses.ClientID %>'];
                     if (dataItems != null && dataItems == 'OnSelectedIndexChanged')
                     //close here your modal
                     $(function(){closeDialog();});
                }
    

    【讨论】:

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