网格视图 - 我是否需要嵌套控件的ViewState

时间:2010-07-14 14:34:01

标签: asp.net vb.net gridview viewstate

我有一个带有嵌套文本框的网格视图。我想关闭视图状态,但事实是当数据发布时,gridview内的文本框不可用(回发时gridview中没有行)。

我正在使用ASP.NET 2.0,所以它会进入控制状态,而不是视图状态吗?

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

编辑

控件的信息不存储在视图状态中(对于选定值和.text等内容):

  

ASP.NET 2.0版中引入的控件状态类似于视图状态,但在功能上与视图状态无关。页面开发人员可以禁用页面的视图状态或单个控件的性能。但是,无法禁用控制状态。控制状态用于存储控件的基本数据(例如寻呼机控件的页码),这些数据必须在回发时可用,以使控件即使在禁用视图状态时也能正常工作。

来源:http://msdn.microsoft.com/en-us/library/1whwt1k7.aspx

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

控件不管理从PostBack到PostBack的状态。这就是ViewState的用途。 Gridview中的控件与存储在viewstate中的数据绑定,除非您在每个PostBack上绑定控件(不可取)。