Gridview теряет ItemTemplate после удаления столбцов - PullRequest
3 голосов
/ 09 августа 2009

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

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

Используя следующее в качестве примера, «Заголовок A» будет по-прежнему видимым, но «Заголовок B» исчезнет после удаления любых столбцов, которые расположены с индексом 2 и выше. Я создаю столбцы в моем коде для сетки как часть инструмента отчетности. Если я не удаляю столбцы, проблема, похоже, не возникает.

<asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="false" AllowPaging="True" PageSize="10" GridLines="Horizontal">
    <Columns>
        <asp:TemplateField HeaderText="Header A"  >
            <ItemTemplate >
                  Text A
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>
                      Header B
            </HeaderTemplate>
            <ItemTemplate>
                      Text B
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

For i = 2 To DataGrid1.Columns.Count - 1
      DataGrid1.Columns.RemoveAt(2)
Next

EDIT

Так что из того, что я прочитал, похоже, проблема, которая возникает при изменении сетки. Кто-нибудь знает хороший обходной путь для повторной инициализации столбцов шаблона или их повторной настройки, чтобы при удалении столбцов, не являющихся шаблонами, также не удалялись шаблоны?

1 Ответ

0 голосов
/ 10 сентября 2009

Вам нужен GridView, чтобы иметь ViewState? Попробуйте отключить ViewState.

<asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="false" AllowPaging="True" PageSize="10" GridLines="Horizontal" EnableViewState="false">    
...