.net 如何清除ViewState?

t30tvxxf  于 2023-04-08  发布在  .NET
关注(0)|答案(6)|浏览(123)

我有一个问题,其中两个控件,这是通过编程添加的试图加载对方的视图状态,我想在加载控件之前清除视图状态,我尝试了视图状态。清除,但它什么也没做,当我禁用我的控件的容器上的视图状态一切正常,除了控件的状态不被保留。有没有一种方法来清除视图状态只是一个特定的控件?

fkvaft9z

fkvaft9z1#

是的,

string controlName = "name of control";
ViewState[controlName] = null;
// create control, add it to the page
tez616oj

tez616oj2#

如果ViewState妨碍了您,而您还没有这样做,请阅读
TRULY understanding ViewSate
它将使您在使用ViewState和整个ASP.NET页面生命周期时更加舒适。

daolsyd0

daolsyd03#

假设两个控件都继承自System.Web.UI.Control。您可以通过将其EnableViewState设置为false来禁用其各自的ViewState。您还可以清除其ViewState,因为每个控件都有一个ViewState属性。

mklgxw1f

mklgxw1f4#

确保这两个以编程方式添加的控件的id不同,并且ViewState问题应该消失。

agyaoht7

agyaoht75#

您可以在特定控件上禁用viewstate:

EnableViewState="False"
f4t66c6m

f4t66c6m6#

从你的描述来看,似乎你在加载动态控件时犯了一个常见的错误--要么你加载得太晚,要么你没有给它们分配唯一的ID(每次回发时都给它们分配相同的唯一ID)。
如果这确实是你的问题,那么清除视图状态并不是要采取的适当行动。解决这个问题很简单,检查以下三个链接:
http://msdn.microsoft.com/en-us/library/ms972976.aspx
https://web.archive.org/web/20210330142645/http://www.4guysfromrolla.com/articles/092904-1.aspx
http://geekswithblogs.net/shahed/archive/2008/06/26/123391.aspx

相关问题