Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 网格视图-嵌套控件是否需要ViewState_Asp.net_Vb.net_Gridview_Viewstate - Fatal编程技术网

Asp.net 网格视图-嵌套控件是否需要ViewState

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>

我有一个网格视图,其中有一个嵌套的文本框。我想关闭视图状态,但事实上,当发布数据时,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>

这是一个错误。您可能需要重写
SaveControlState
方法,以便在
ControlState
中保存
TemplateField
数据

搜索“使用控制状态的缺点是:”在:

在ASP.NET页面框架为控制状态提供基础的同时,控制状态是一种自定义状态持久机制,为了充分利用控制状态,必须编写代码来保存和加载控制状态。 也可能有帮助:


控件不管理从回发到回发的自身状态。这就是ViewState的用途。Gridview中的控件是从viewstate中存储的数据绑定的,除非每次回发时都绑定控件(不可取)。

那么文本框的值不是存储在控件状态中吗?无论GridView的视图状态是什么,我都应该能够访问它们吗?
ControlState
ViewState
是分开的(尽管
ControlState
存储在丑陋的
ViewState
对象中,所以设置
EnableViewState=false
时,您仍然可以看到
ViewState
)。我相信Joel是对的,您必须对
ControlState
进行专门编程,以保存
TemplateField
数据。顺便说一句,
ControlState
也存储在
\u VIEWSTATE
对象中: