Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
C# ViewState维护了哪些控件?_C#_.net_Asp.net_Viewstate - Fatal编程技术网

C# ViewState维护了哪些控件?

C# ViewState维护了哪些控件?,c#,.net,asp.net,viewstate,C#,.net,Asp.net,Viewstate,我正试图了解ASP.NET为哪些基础结构维护视图状态 有以下常规HTML控件,例如: ->我知道这些没有viewstate 然后是带有runat=“server”的HTML控件 ->回发之间是否维护viewstate 还有ASP.NET控件 ->我知道这些都有viewstate 我们有一些继承HtmlTextBox的自定义控件 ->这与上面的类型2相同吗 可以安全地假设任何带有runat=“server”标记的控件都将维护viewstate吗?afaik否,HTML控件不是为维护viewstat

我正试图了解ASP.NET为哪些基础结构维护视图状态

有以下常规HTML控件,例如:
->我知道这些没有viewstate

然后是带有runat=“server”的HTML控件
->回发之间是否维护viewstate

还有ASP.NET控件
->我知道这些都有viewstate

我们有一些继承HtmlTextBox的自定义控件
->这与上面的类型2相同吗


可以安全地假设任何带有
runat=“server”
标记的控件都将维护viewstate吗?

afaik否,HTML控件不是为维护viewstate中的任何内容而设计的,如果您关心它,请使用WebControl。

有3种类型的控件,标准HTML元素如下:,添加了runat=server标记的HTML服务器控件,以及完整的web控件。只有web控件维护了viewstate。

当我们遇到viewstate问题时,我开始使用Binary Fortress中的viewstate帮助软件

它可以让您真正了解正在发生的事情,并帮助解决与viewstate相关的性能问题。您只需单击一下即可解码viewstate,并查看其中的实际内容,这样您就可以了解哪些控件正在使用viewstate,哪些控件没有使用viewstate,以及它们在其中存储的确切内容


另外,没有人提到过ControlState。这与ASP.NET 2一起出现,其原理是控件功能所需的重要内容进入控件状态,数据等进入viewstate,因此您可以关闭viewstate并在每次回发时将数据绑定到控件,控件基本上仍然使用controlstate工作。我之所以说“理论”,是因为在实践中,实现似乎参差不齐。例如,当您使用reflector查看dropdownlist代码时,这并没有正确实现。我不确定,随着框架的更高版本,这种情况可能已经改变。有很多关于controlstate的信息如果你搜索它,我想我会提到它。

任何你放在页面视图上并添加runat=“server”的东西都会保持viewstate


对于动态添加的控件,这取决于何时以及如何将控件添加到控件树。请检查已接受的答案,但也请检查。

这是不正确的。如@MikeW所述,只有web控件维护了viewstate。即使它具有runat=server,也不会维护viewstate