Asp.net 嵌套ListView DataPager停止使用updatepanel

Asp.net 嵌套ListView DataPager停止使用updatepanel,asp.net,listview,sharepoint,updatepanel,datapager,Asp.net,Listview,Sharepoint,Updatepanel,Datapager,以下是我的设想: 我有几笔交易,每笔交易都有一个类别,所有交易都按类别分组: DealView:命名交易对象的类别、交易列表 DealViews列表绑定到category列表视图,item databound上的listview生成相应的内部listview并设置其相应的数据页分页大小,它还决定是否显示内部页分页。categories listview的OnLoad事件用于任何内部寻呼机的回发。我可以调试代码,我可以看到加载事件被执行,内部页面设置页面属性也被正确设置,但是无论我点击多少次,UI

以下是我的设想: 我有几笔交易,每笔交易都有一个类别,所有交易都按类别分组: DealView:命名交易对象的类别、交易列表 DealViews列表绑定到category列表视图,item databound上的listview生成相应的内部listview并设置其相应的数据页分页大小,它还决定是否显示内部页分页。categories listview的OnLoad事件用于任何内部寻呼机的回发。我可以调试代码,我可以看到加载事件被执行,内部页面设置页面属性也被正确设置,但是无论我点击多少次,UI上没有任何变化。如果我删除updatepanel,一切正常。以下是一些或许多代码:

 <div class="tabs-content">
                     <asp:UpdatePanel ID="upDeals" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
                    <asp:ListView ID="lvCategorisedDeals" runat="server" DataKeyNames="Deals" >
                        <LayoutTemplate>
                            <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
                            <div class="clear"></div>
                        </LayoutTemplate>
                        <ItemTemplate>
                            <div class="tab-item">
                                <asp:ListView runat="server" ID="lvCategoryDeals">
                                    <LayoutTemplate>
                                        <div class="deals">
                                            <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
                                        </div>
                                        <div class="clear"></div>
                                    </LayoutTemplate>
                                    <ItemTemplate>
                                        <div class="rc-item">
                                            <h3><a href="<%# Eval("Url") %>"><%# Eval("Title") %></a></h3>
                                            <div class="deal-img">
                                                <a href="<%# Eval("Url") %>"><img src="<%# Eval("ImageUrl") %>" width="168" height="113"></a>
                                            </div>
                                            <div class="deal-data">
                                                <div class="info"><%# Eval("Caption") %></div>
                                                <div class="price"><%# Eval("Currency") %> <%# Eval("DiscountedPrice") %></div>
                                                <div class="deal-booking"><a href="#">Buy Now</a></div>
                                            </div>
                                        </div>
                                    </ItemTemplate>
                                </asp:ListView>
                                <div class="dealsPager">
                                    <asp:DataPager runat="server" ID="pgInner" PagedControlID="lvCategoryDeals" >
                                        <Fields>
                                            <asp:NumericPagerField />
                                        </Fields>
                                    </asp:DataPager>
                                </div>
                            </div>
                         </ItemTemplate>
                    </asp:ListView>
        </ContentTemplate>
</asp:UpdatePanel>
                </div>
在代码背后:

 void lvCategorisedDeals_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            foreach (var item in lvCategorisedDeals.Items)
            {
                if (item.ItemType == ListViewItemType.DataItem)
                {
                    var lvInner = item.FindControl("lvCategoryDeals") as ListView;
                    if (lvInner == null)
                        throw new InvalidOperationException("The inner ListView was not found");

                    var pgInner = item.FindControl("pgInner") as DataPager;
                    if (pgInner == null)
                        throw new InvalidOperationException("The inner pager was not found");

                    if (lvCategorisedDeals.DataKeys == null && lvCategorisedDeals.DataKeys.Count == 0)
                        throw new InvalidOperationException("The outer ListViews Datakeys do not seem to be set");

                    var dataItem = lvCategorisedDeals.DataKeys[item.DisplayIndex].Value as List<GRCDeal>;


                    lvInner.PagePropertiesChanging += new EventHandler<PagePropertiesChangingEventArgs>(
                        (s, evt) =>
                        {

                            pgInner.SetPageProperties(evt.StartRowIndex, evt.MaximumRows, false);


                            // Get the data for the ListView lvInner
                            lvInner.DataSource = dataItem;
                            lvInner.DataBind();



                        }
                    );
                }
            }
        }
    }


    void lvCategorisedDeals_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        var listViewDataItem = e.Item as ListViewDataItem;
        if (listViewDataItem == null)
            return;

        if (listViewDataItem.ItemType == ListViewItemType.DataItem)
        {
            var lvInner = e.Item.FindControl("lvCategoryDeals") as ListView;
            if (lvInner == null)
                throw new InvalidOperationException("The inner ListView was not found");

            var pgInner = e.Item.FindControl("pgInner") as DataPager;
            if (pgInner == null)
                throw new InvalidOperationException("The inner pager was not found");

            var dataItem = listViewDataItem.DataItem as DealView;

            pgInner.PageSize = this.PageSize;
            pgInner.Visible = dataItem.Deals.Count > this.PageSize;

            lvInner.DataSource = dataItem.Deals;
            lvInner.DataBind();

        }
另外需要注意的是,我正在将该交易列表作为数据键传递,并且我能够很好地抓住它。第一个绑定发生在页面加载时。代码位于Visual Web部件SharePoint 2013的用户控件部分中。 谢谢你的帮助,因为这让我很难受