Я создаю веб-интерфейс, который в настоящее время считывает данные из файла данных XML, анализирует их в массив объектов, после чего я связываю их с источником данных Gridview. Затем я использую и для извлечения нужных мне данных из объектов для каждого столбца.
Тем не менее, я хочу, чтобы в этом окне сетки было несколько вкладок, возможно, управляемых разными кнопками ссылок. На каждой вкладке будет отображаться отдельный набор столбцов.
Как лучше всего это реализовать? Нужно ли мне иметь три отдельных GridView на моей странице и просто показывать тот, для которого пользователь выбрал (основываясь на нажатии на кнопку ссылки), скрывая при этом все остальные? Казалось, что это может быть излишне медленным. Можно ли это сделать через один GridView?
Прямо сейчас весь GridView содержится в панели обновления AJAX с кодом ниже:
<asp:Panel id="searchResultsGrid" runat="server" CssClass="searchResultsGrid">
<asp:GridView id="gridViewSearchResults" runat="server" AutoGenerateColumns="false"
AllowPaging="True" AllowSorting="True"
PageSize="25" Width="920" PagerSettings-Visible="false">
<Columns>
<asp:templatefield headertext="Test Column 1 Tab 1" HeaderStyle-HorizontalAlign="Left">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 2 Tab 1" HeaderStyle-HorizontalAlign="Left">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 3 Tab 1" HeaderStyle-HorizontalAlign="Left">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 4 Tab 1" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 5 Tab 1" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 6 Tab 1" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="Test Column 7 Tab 1" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right">
<itemtemplate>
<%# GetColumnInfo() %>
</itemtemplate>
</asp:templatefield>
</Columns>
<RowStyle CssClass="searchResultEntry borderTopGrey" />
<EmptyDataTemplate>
<p class="searchResultsEmpty">
<asp:Label ID="lblSearchResultsEmpty" runat="server" Text="No records matched the selected criteria. Please revise your criteria and try again." CssClass="searchResultsEmpty"></asp:Label>
</p>
</EmptyDataTemplate>
</asp:GridView>
</asp:Panel>
Это код, который у меня сейчас есть для одного вида сетки с содержимым одной вкладки. Основываясь на ответе jdk, как мне добавить другие TemplateFields для второй и третьей вкладок, а затем переключаться между отображением различных наборов при нажатии кнопки ссылки вкладки?
Спасибо!