Проблемы с TabContainer - PullRequest
       8

Проблемы с TabContainer

0 голосов
/ 21 сентября 2010

Возникла странная проблема с TabContainer в AJAX Toolkit.

У нас есть несколько представлений о системе учета клиентов, которую мы создали как элементы управления ASP.net.Эти элементы управления используют UpdatePanels для асинхронной загрузки данных.Мы используем jQuery и jquery.ui для размещения этих элементов управления на отдельных вкладках на одной странице.

Который все работает плавно.

В последнее время я немного устал от хакерского подхода к вкладке jQuery и решил портировать все на использование TabContainer.Я хочу иметь возможность контролировать вкладки как объекты.

На первый взгляд все работает отлично.Я просто положил элементы управления на вкладки в TabContainer, и все выглядело великолепно.Однако по какой-то причине элементы управления, связанные с данными, теряют свои данные.

Например, представления сетки исчезают, когда я переключаю страницы.Выпадающий элемент управления с событием OnTextChanged теряет свой список значений, привязанный к базе данных, после обратной отправки.

Что-то в TabContainer -> Пользовательский элемент управления -> UpdatePanel -> Элемент управления, использующий иерархию привязки данных, выбрасывает его из строя, и отладчик не проливает свет.Кажется, что состояние управления не сохраняется.

Я действительно недостаточно знаю о состоянии управления, чтобы знать, что искать.

Есть идеи?Вот разметка для 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 ]

0 голосов
/ 12 апреля 2012

Убедитесь, что свойство TabContainer OnDemand отключено. Я точно знаю, что это может привести к тому, что ваши элементы управления, такие как GridView, потеряют свои данные при сохранении своих строк, особенно если вы динамически генерируете свои элементы управления.

Через разметку:

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

По коду:

tcBanner.OnDemand = false;
0 голосов
/ 24 сентября 2010

Это оказалось совершенно не связанным с вложенными TabContainers.

Я неосознанно сломал эти элементы управления, прежде чем добавить их в TabContainer, и, что удивительно, это означало, что они не функционировали так, как раньше.

Извините, что потратили ваше коллективное время.

Спасибо, Клиф

...