这让我完全不解,谁能解释一下?Viewstate - 完全混淆。
标记:
<form id="form1" runat="server">
<asp:TextBox runat="server" ID="txtTest" />
<asp:PlaceHolder runat="server" ID="PlaceHolder1" />
<asp:Button runat="server" Text="Click" />
</form>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
txtTest.Text = "BBB";
PlaceHolder1.Controls.Add(new TextBox() { Text = "AAA" });
}
当我改变在这两个文本框中的文字,然后点击“点击”按钮,在txtTest文本将恢复到原来的值'BBB'(在page_load中指定),但动态文本框保留刚刚输入的值(而不是'AAA'),尽管它与另一个'硬编码'文本框同时指定。
我认为,我们的编码在后.NET 1.0/1.1的时代,请参阅相关的一个帖子在这里得到更好的理解添加动态控制的性质:http://stackoverflow.com/questions/ 1708264/add-dynamic-controls-in-asp-net-is-there-a-difference-between-1-1-and-2-0 – 2009-11-10 14:20:00
我猜测这不是1.0/1.1时代代码,因为他用来添加动态控件的语法。 – 2009-11-10 14:45:59