2010-07-14 2 views
1

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

Я использую ASP.NET 2.0, так что это попадет в состояние управления, а не состояние представления?

Пример кода ASPX в GridView:

<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> 

EDIT

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

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

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

+0

Btw, 'ControlState' также хранится в объекте' __VIEWSTATE': http://stackoverflow.com/questions/1935680/gridview-controlstate-very-large-even-when-viewstate-disabled-and-not- using-datak/3247779 # 3247779 – JohnB

ответ

1

article explains how to use ControlState Это. Возможно, вам необходимо переопределить метод SaveControlState для сохранения TemplateField данных в ControlState.

Поиск «Неудобство использования государственного контроля:» в this article:

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

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

Control State vs. View State Example

ASP.NET State Management Overview

+0

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

+0

SO не является значениями текстового поля, хранящимися в состоянии управления? Должен ли я иметь доступ к ним независимо от того, что представляет собой состояние просмотра GridView? –

+0

'ControlState' отделен от' ViewState' (хотя 'ControlState' хранится в уродливом объекте ViewState', поэтому вы все равно видите' ViewState', когда вы устанавливаете 'EnableViewState = false'). Я считаю, что Джоэл прав, и вам нужно запрограммировать «ControlState» специально для сохранения данных «TemplateField». – JohnB

1

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

Смежные вопросы