Возникла странная проблема с 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>