Grid View - нужен ли ViewState для вложенных элементов управления - PullRequest
1 голос
/ 14 июля 2010

У меня есть сетка с вложенным текстовым полем.Я хотел бы отключить состояние просмотра, но факт в том, что когда данные публикуются, текстовые поля внутри gridview недоступны (нет строк в gridview при обратной передаче).

Яс использованием ASP.NET 2.0, может ли это перейти в состояние элемента управления, а не в состояние просмотра?

Пример ASPX-кода вида сетки:

<asp:GridView runat="server" ID="myGridView">               
    <Columns>                        
        <asp:TemplateField ItemStyle-Wrap="false" HeaderText="Name">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="myTextBox" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

РЕДАКТИРОВАНИЕ

Элементы управленияинформация не сохраняется в состоянии просмотра (для таких вещей, как выбранное значение, текст и т. д.):

Состояние управления, введенное в ASP.NET версии 2.0, аналогично состоянию просмотра, но функционально не зависит отпросмотр состояния.Разработчик страницы может отключить состояние просмотра для страницы или для отдельного элемента управления для производительности.Тем не менее, состояние управления не может быть отключено.Состояние элемента управления предназначено для хранения важных данных элемента управления (например, номера страницы элемента управления пейджером), которые должны быть доступны при обратной передаче, чтобы обеспечить возможность функционирования элемента управления даже при отключенном состоянии просмотра.

Источник:http://msdn.microsoft.com/en-us/library/1whwt1k7.aspx

Ответы [ 2 ]

1 голос
/ 14 июля 2010

Элемент управления не управляет своим собственным состоянием от PostBack до PostBack.Вот для чего нужен ViewState.Элементы управления в Gridview связаны с данными, хранящимися в состоянии просмотра, если вы не привязываете элемент управления к каждому PostBack (не рекомендуется).

1 голос
/ 14 июля 2010

В этой статье объясняется, как использовать ControlState . Возможно, вам нужно переопределить метод SaveControlState, чтобы сохранить TemplateField данные в ControlState.

Поиск "Недостаток использования состояния управления:" в этой статье :

"Требуется некоторое программирование. Хотя структура страницы ASP.NET обеспечивает основу для состояния управления, состояние управления - это настраиваемый механизм сохранения состояния. Чтобы полностью использовать состояние управления, необходимо написать код для сохранения и загрузки состояния управления. «

Также может быть полезно:

Пример состояния управления и состояния просмотра

Обзор управления состоянием ASP.NET

...