动态创建ASP.NET控件并保持其状态分析及实现

动态创建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()方法就负责跟踪其状态。只要控件被添加到控件树里,这个方法就会被自动的触发。

posted @ 2008-07-09 09:36  Shapley  阅读(855)  评论(0编辑  收藏  举报