今天我做了个小实验,代码如下:
<div>
<asp:TextBox ID="Text1" runat="server" EnableViewState="False"></asp:TextBox>
<br/>
<input type="text" id="Text2"/>
<br/>
<input type="text" id="Text3" runat="server"/>
<br/>
<asp:Button ID="Button1" runat="server" Text="提交"/>
</div>运行进入页面后,在Text1,Text2,Text3中分别输入文字
为什么在点击了"提交"后,Text1的文字保存在页面中,Text2,Text3的文字在调转后就没了呢?
<div>
<asp:TextBox ID="Text1" runat="server" EnableViewState="False"></asp:TextBox>
<br/>
<input type="text" id="Text2"/>
<br/>
<input type="text" id="Text3" runat="server"/>
<br/>
<asp:Button ID="Button1" runat="server" Text="提交"/>
</div>运行进入页面后,在Text1,Text2,Text3中分别输入文字
为什么在点击了"提交"后,Text1的文字保存在页面中,Text2,Text3的文字在调转后就没了呢?
<asp:TextBox ID="Text1" runat="server" EnableViewState="true"> </asp:TextBox>
text1中和text3中也是还含有文字的!
没太懂楼主的意思,如果想试试EnableViewState的效果,不如拉个<asp:DropDownList>试试
这样做有个好处就是:如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度.
首先说明一点:<asp:TextBox ID="Text1" runat="server" EnableViewState="False"> </asp:TextBox>
这个控件和<asp:TextBox ID="Text1" runat="server"> </asp:TextBox>是没有区别的;不是因为试图状态的问题;而是TextBox服务器控件在解析为html代码时是<input>,所以里面的值还是会传递和保留的;和上面所说的,EnableViewState这个状态的测试不要使用TextBox控件;
其他的看一下7楼的说明把
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEyNTI1NjQ4NTJkZP73T0qSar/gOVcUUMtr1DKHDIcT" />
我想知道,是不是在这里,已经把所有的服务器控件的ID,及相应的值都存储了起来;
并且这个隐藏控件不认其他,只认runat是否为server;