在页面上 放 一个Button1 和 一个 Panel1  代码如下:
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            this.add();
        }
    }
    void add()
    {
        for (int i = 0; i < 10; i++)
        {
            Label L = new Label();
            L.Text = i.ToString();
            this.Panel1.Controls.Add(L);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write(this.Panel1.Controls.Count);
    }Panel1 的 EnableViewState="true" ;当点击Button1的时候会输出什么呢???我认为是10 
你认为是什么呢????为什么呢??请指教

解决方案 »

  1.   

    补充一点
    本机运行 环境 : win xp ;  ASP.NET 2.0
      

  2.   

    放置动态创建控件应该用PlaceHolder吧
      

  3.   

    好像也不行....
    我将 Panel1 替换为 PlaceHolder
    点击按钮之后...输出结果 为 0
      

  4.   

    动态加载需要每次加载控件。不过控件视图会进行保留。参考例子,
    动态加载Asp.net分页控件
    http://blog.csdn.net/zhzuo/archive/2004/11/30/199065.aspx
      

  5.   

    ViewState可以保存控件的外观属性,在回发过程后得以恢复,但是动态加载的控件会丢失掉,因为他们并不是实体成员
      

  6.   

    Page.IsPostBack的问题刷新之后并不会再加载控件
      

  7.   

    如果照你的代码运行,结果应该是0。
    因为点击Button,页面重新加载,这时候Page.IsPostBack==true,所以它不会执行你的Add的方法,所以Panel的控件数还是为0。
    如果把if (!Page.IsPostBack)去掉,应该可以实现你的效果