动态创建asp.net控件并保存其状态,简要总结如下:
1:背景知识:需要了解Page的生存周期。
2:方法总结:
1>
在页面代码文件中的声明区域写(这里以Label控件为例): Label x = new Label();
pageload事件中代码为: protected void Page_Load(object sender, EventArgs e)
{
this.Page.Controls.Add(x);
}
在页面需要设定x值时写: x.Text = "zzz";等等。如此,无论页面如何刷新,即可实现动态创建控件并保存状态目的。
2>
思路:将控件动态添加到页面已有的控件或者控件容器中去,然后根据需要动态设定其状态即可。
例如: <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<asp:Literal ID="tr" runat="server"></asp:Literal> </ItemTemplate>
</asp:Repeater>
在Repeater1_ItemDataBound事件中写:(e.Item.FindControl("ds") as Literal).Text = "";
两种思路相通之处:控件一旦被添加到页的控件树里,TrackViewState()方法就负责跟踪其状态。只要控件被添加到控件树里,这个方法就会被自动的触发。
|
请发表评论