ASP.NET:为什么无法禁用控件状态

时间:2013-02-01 05:23:46

标签: asp.net viewstate control-state

我知道ASP.NET不允许禁用控件状态。

有人知道为什么?我已经google了很多但只看到它不可能,但却找不到“为什么?”

欢迎任何有关此事的想法!

P.S。在我的特定情况下,我需要将大量项目放入下拉列表中,该列表不会用于服务器端事件。而不是仅仅禁用控制状态我需要编写自己的自定义DropDownList ... :(

1 个答案:

答案 0 :(得分:3)

控制状态与视图状态分离,因此可以在不破坏关键功能的情况下禁用视图状态。理论上,控制状态应该包含服务器控件正常运行所需的一切。

  

ASP.NET 2.0版中引入的控件状态是   类似于视图状态但在功能上独立于视图状态。一个   页面开发人员可以禁用页面或页面的视图状态   个人控制表现。但是,控制状态不可能   禁用。控制状态旨在存储控件的必要条件   必须可用的数据(例如寻呼机控件的页码)   回发以使控件即使在视图状态具有时也能正常工作   被禁用了。

http://msdn.microsoft.com/en-us/library/1whwt1k7(v=vs.100).aspx

然而...... ASP.Net在做出这种区分方面做得不好,禁用视图状态确实会破坏某些服务器控制,尽管有强制控制状态。

在您的情况下,禁用下拉列表的视图状态应该删除绝大多数状态数据;对于禁用视图状态的下拉列表,控制状态通常非常小。我建议先写一下你自己的。