Asp.net 网格视图-嵌套控件是否需要ViewState
我有一个网格视图,其中有一个嵌套的文本框。我想关闭视图状态,但事实上,当发布数据时,gridview中的文本框不可用(回发时gridview中没有行) 我使用的是ASP.NET 2.0,所以这会进入控制状态,而不是视图状态吗 gridview的ASPX代码示例:Asp.net 网格视图-嵌套控件是否需要ViewState,asp.net,vb.net,gridview,viewstate,Asp.net,Vb.net,Gridview,Viewstate,我有一个网格视图,其中有一个嵌套的文本框。我想关闭视图状态,但事实上,当发布数据时,gridview中的文本框不可用(回发时gridview中没有行) 我使用的是ASP.NET 2.0,所以这会进入控制状态,而不是视图状态吗 gridview的ASPX代码示例: <asp:GridView runat="server" ID="myGridView"> <Columns>
<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>
这是一个错误。您可能需要重写SaveControlState
方法,以便在ControlState
中保存TemplateField
数据
搜索“使用控制状态的缺点是:”在:
在ASP.NET页面框架为控制状态提供基础的同时,控制状态是一种自定义状态持久机制,为了充分利用控制状态,必须编写代码来保存和加载控制状态。
也可能有帮助:
控件不管理从回发到回发的自身状态。这就是ViewState的用途。Gridview中的控件是从viewstate中存储的数据绑定的,除非每次回发时都绑定控件(不可取)。那么文本框的值不是存储在控件状态中吗?无论GridView的视图状态是什么,我都应该能够访问它们吗?ControlState
与ViewState
是分开的(尽管ControlState
存储在丑陋的ViewState
对象中,所以设置EnableViewState=false
时,您仍然可以看到ViewState
)。我相信Joel是对的,您必须对ControlState
进行专门编程,以保存TemplateField
数据。顺便说一句,ControlState
也存储在\u VIEWSTATE
对象中: