Состояние элемента управления ASP .NET 2.0 против ViewState

Применима ли новая функция ControlState только к настраиваемым элементам управления или она доступна также и для стандартных серверных элементов управления?

То есть ... можете ли вы отключить ViewState для всей страницы с помощью стандартных элементов управления, таких как Detailsview, Gridview, и будет ли это работать? Применяется ли ControlState к стандартным серверным элементам управления?

Или, чтобы работать с ControlState для стандартных серверных элементов управления, вам нужно изменить их поведение, создав новый пользовательский GridView / DetailsView?


person cwius    schedule 19.12.2008    source источник


Ответы (2)


Из документации Microsoft.

Используйте состояние управления только для небольших объемов критически важных данных, которые необходимы для управления обратными передачами. Не используйте состояние управления в качестве альтернативы состоянию просмотра.

Из этого вы можете догадаться, что GridView и другие элементы не будут хранить такой большой объем информации в ControlState, поэтому я предполагаю, что если вы захотите это сделать, вопреки рекомендации Microsoft, вам придется расширить базовый элемент управления, чтобы Это.

person Mitchel Sellers    schedule 19.12.2008
comment
Майкл, спасибо за ответ, но это не совсем ответ на мой вопрос. - person cwius; 31.12.2008
comment
Если вы отключите состояние просмотра, представление сетки и другие элементы НЕ будут работать, поскольку данные, которые к ним привязаны, не являются критическим объемом данных. - person Mitchel Sellers; 31.12.2008

Вы можете отключить состояние просмотра для всей страницы, но вам нужно повторно привязать datagrid, dataview при каждой обратной передаче.

Иногда это работает лучше, чем сохранение огромного состояния просмотра на клиенте.

Для стандартных серверных элементов управления: если вы измените Свойства элемента управления после инициализации, все изменения также будут сохранены во ViewState.

Вот замечательный пост о ViewState Скотта Митчелла.

person Danil    schedule 17.11.2009