Asp.net 访问GridView';s视图状态

Asp.net 访问GridView';s视图状态,asp.net,viewstate,dataview,Asp.net,Viewstate,Dataview,我所拥有的: 我有一个没有分页的GridView。在包含页面的页面加载处理程序中,我从表存储中读取特定于用户的值,并将它们存储在集合中,以便ObjectDataSource的SelectMethod可以获取它们 我想要什么: 当用户从GridView所在的同一页面上载一些新数据时,我希望GridView在不再次查询存储的情况下,在旧数据的基础上显示新数据 有用的东西: 页面加载处理程序中的IsPostback有助于在数据仍处于ViewState时避免查询。在用户点击上传按钮后,由于GridVie

我所拥有的:

我有一个没有分页的GridView。在包含页面的页面加载处理程序中,我从表存储中读取特定于用户的值,并将它们存储在集合中,以便ObjectDataSource的SelectMethod可以获取它们

我想要什么:

当用户从GridView所在的同一页面上载一些新数据时,我希望GridView在不再次查询存储的情况下,在旧数据的基础上显示新数据

有用的东西:

页面加载处理程序中的IsPostback有助于在数据仍处于ViewState时避免查询。在用户点击上传按钮后,由于GridView的ViewState,他仍然可以看到旧数据

我的尝试:

我试图从GridView派生并创建自己的用户控件,以便访问返回状态包的ViewState属性,但它找不到其中显示的用户数据。它只显示数据源ID之类的内容!物品计数等等

我的问题:

如何从GridView访问ViewState,以便从代码隐藏中检索列值或DataKeyName值等数据

其他信息:


问题的答案是GridView将其数据保存在其ViewState中。

您肯定不想访问GridView的视图状态。这是控制的内部实现细节,随时可能发生变化


设置新数据后,只需在GridView上调用
DataBind()
,控件将显示更新的数据。

您肯定不想访问GridView的视图状态。这是控制的内部实现细节,随时可能发生变化


设置新数据后,只需在GridView上调用
DataBind()
,控件就会显示更新的数据。

@user764754您能发布一些您所做的事情吗?但是听起来你只需要再次绑定它。如果我只设置新数据,GridView将不会显示任何其他内容。如果对新数据进行数据绑定,则ViewState中的旧数据将丢失。因为我不想在回发时进行新查询,所以我只在代码中保留新数据,旧数据隐藏在GridView的ViewState中(从初始页面加载开始)。我明天会发布代码,谢谢。你可能没有访问GridView的ViewState是对的。我现在的解决方案是自己将查询的数据存储在页面ViewState中。此ViewState用于在回发期间获取旧数据。修改旧数据,然后调用DataBind(),并相应地更新页面的ViewState。我还在GridView上设置EnableViewState=“False”,以避免将数据存储在页面的ViewState和GridView的ViewState中。这种变通方法有效。我想我现在不必发布我的旧代码;)@user764754你能把你做过的一些事情贴出来吗?但是听起来你只需要再次绑定它。如果我只设置新数据,GridView将不会显示任何其他内容。如果对新数据进行数据绑定,则ViewState中的旧数据将丢失。因为我不想在回发时进行新查询,所以我只在代码中保留新数据,旧数据隐藏在GridView的ViewState中(从初始页面加载开始)。我明天会发布代码,谢谢。你可能没有访问GridView的ViewState是对的。我现在的解决方案是自己将查询的数据存储在页面ViewState中。此ViewState用于在回发期间获取旧数据。修改旧数据,然后调用DataBind(),并相应地更新页面的ViewState。我还在GridView上设置EnableViewState=“False”,以避免将数据存储在页面的ViewState和GridView的ViewState中。这种变通方法有效。我想我现在不必发布我的旧代码;)