代码之家  ›  专栏  ›  技术社区  ›  clifgriffin

TabContainer问题

  •  0
  • clifgriffin  · 技术社区  · 14 年前

    AJAX工具箱中的TabContainer有一个奇怪的问题。

    我们已经构建了一个客户记录系统,其中有几个视图ASP.net控制。这些控件使用updatePanel异步加载数据。我们使用jQuery和jquery.ui将这些控件放置在单个页面上的单独选项卡中。

    一切都很顺利。

    乍一看,一切正常。我只是把控件放到一个TabContainer中的tab中,一切看起来都很棒。但是,由于某些原因,数据绑定控件正在丢失其数据。

    例如,当我切换页面时,网格视图消失。具有OnTextChanged事件的下拉控件在回发时将丢失其值的数据绑定列表。

    我对控制状态的了解还不够,不知道该找什么。

    有什么想法吗?以下是TabContainer的标记:

    <asp:TabContainer ID="tcBanner" runat="server" ActiveTabIndex="0" Width="100%" 
        EnableViewState="False" ScrollBars="Vertical">
        <asp:TabPanel runat="server" HeaderText="Comments" ID="tbComments">
            <ContentTemplate>
                <luBannerControl:Comments ID="commentsTabContent" runat="server" />
            </ContentTemplate>
        </asp:TabPanel>        
        <asp:TabPanel runat="server" HeaderText="General" ID="tbContact">
            <ContentTemplate>
                <luBannerControl:Contact ID="contactTabContent" runat="server" />
            </ContentTemplate>
        </asp:TabPanel>
    </asp:TabContainer>
    

    以下是其中一个控件的标记:

    <asp:UpdatePanel ID="pnlComments" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <asp:GridView ID="CommentsGridView" AllowPaging="true" PageSize="20" DataSourceID="BannerSqlDataSource" runat="server" AutoGenerateColumns="False" GridLines="None" CssClass="CommentGrid" HeaderStyle-CssClass="CommentGridHeader" RowStyle-CssClass="CommentRowsEven" AlternatingRowStyle-CssClass="CommentRowsOdd">
                <Columns>
                    <asp:BoundField DataField="SPRCMNT_TEXT" HeaderText="Comment" SortExpression="SPRCMNT_TEXT" />
                    <asp:BoundField DataField="SPRCMNT_DATE" HeaderText="Created" SortExpression="SPRCMNT_DATE" DataFormatString="{0:M/dd/yyyy}" />
                    <asp:BoundField DataField="SPRCMNT_CMTT_CODE" HeaderText="Type" SortExpression="SPRCMNT_CMTT_CODE" />
                    <asp:BoundField DataField="SPRCMNT_CTYP_CODE" HeaderText="Source" SortExpression="SPRCMNT_CTYP_CODE" />
                    <asp:BoundField DataField="sprcmnt_user_id" HeaderText="User" SortExpression="sprcmnt_user_id" />
                </Columns>
            </asp:GridView>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="txtSearch" EventName="TextChanged" />
            <asp:AsyncPostBackTrigger ControlID="btnClearFilter" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   clifgriffin    14 年前

    这最终与嵌套的TabContainers完全无关。

    在将这些控件添加到TabContainer之前,我在不知情的情况下破坏了这些控件,令人惊讶的是,这意味着它们不再像以前那样工作了。

    谢谢,

        2
  •  0
  •   Gaff    13 年前

    确保你的标签盒 OnDemand

    通过标记:

    <asp:TabContainer ID="tcBanner" runat="server" ActiveTabIndex="0" Width="100%" 
        EnableViewState="False" ScrollBars="Vertical" OnDemand="false" >
    

    Via代码:

    tcBanner.OnDemand = false;