我有一个问题,其中两个控件,这是通过编程添加的试图加载对方的视图状态,我想在加载控件之前清除视图状态,我尝试了视图状态。清除,但它什么也没做,当我禁用我的控件的容器上的视图状态一切正常,除了控件的状态不被保留。有没有一种方法来清除视图状态只是一个特定的控件?
fkvaft9z1#
是的,
string controlName = "name of control"; ViewState[controlName] = null; // create control, add it to the page
tez616oj2#
如果ViewState妨碍了您,而您还没有这样做,请阅读TRULY understanding ViewSate它将使您在使用ViewState和整个ASP.NET页面生命周期时更加舒适。
daolsyd03#
假设两个控件都继承自System.Web.UI.Control。您可以通过将其EnableViewState设置为false来禁用其各自的ViewState。您还可以清除其ViewState,因为每个控件都有一个ViewState属性。
mklgxw1f4#
确保这两个以编程方式添加的控件的id不同,并且ViewState问题应该消失。
agyaoht75#
您可以在特定控件上禁用viewstate:
EnableViewState="False"
f4t66c6m6#
从你的描述来看,似乎你在加载动态控件时犯了一个常见的错误--要么你加载得太晚,要么你没有给它们分配唯一的ID(每次回发时都给它们分配相同的唯一ID)。如果这确实是你的问题,那么清除视图状态并不是要采取的适当行动。解决这个问题很简单,检查以下三个链接:http://msdn.microsoft.com/en-us/library/ms972976.aspxhttps://web.archive.org/web/20210330142645/http://www.4guysfromrolla.com/articles/092904-1.aspxhttp://geekswithblogs.net/shahed/archive/2008/06/26/123391.aspx
6条答案
按热度按时间fkvaft9z1#
是的,
tez616oj2#
如果ViewState妨碍了您,而您还没有这样做,请阅读
TRULY understanding ViewSate
它将使您在使用ViewState和整个ASP.NET页面生命周期时更加舒适。
daolsyd03#
假设两个控件都继承自System.Web.UI.Control。您可以通过将其EnableViewState设置为false来禁用其各自的ViewState。您还可以清除其ViewState,因为每个控件都有一个ViewState属性。
mklgxw1f4#
确保这两个以编程方式添加的控件的id不同,并且ViewState问题应该消失。
agyaoht75#
您可以在特定控件上禁用viewstate:
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