在页面上 放 一个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.   

    1
    因为只创建了一个Label实例
      

  3.   

    测试过,是1;在执行Button1_Click 后,重新执行page_load, 
    Panel1 就没有子控件了.
    改成下面代码,看看执行前后的区别:
     protected void Page_Load(object sender, EventArgs e)
            {
                //if (!Page.IsPostBack)
                //{
                //    this.add();
                //}
                this.add();
            }       public void add()
            {
                for (int i = 0; i < 10; i++)
                {
                    Button b = new Button();
                    b.Text = i.ToString();
                    this.Panel1.Controls.Add(b);
                }
                this.TextBox1.Text = this.Panel1.Controls.Count.ToString(); 
            }        protected void Button1_Click(object sender, EventArgs e)
            {
                 this.Label1.Text = this.Panel1.Controls.Count.ToString();
            }
      

  4.   

    动态加载的控件,每次 PostBack 后,需要重新加载!
      

  5.   

    现在是 postback的时候不能 保存 动态控件的状态??to: hchxxzx(NET?摸到一点门槛) 我不是想知道输出的结果,我是想知道为什么.
    难道你看不明白?
      

  6.   

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

  7.   

    楼主从哪里开始入门学的asp.net?估计你是被耽误了。asp.net页面每一次处理都是创建页面类的一个新的实例,并不是拿出上一个页面实例来,也就没有里边的东西(例如你在类型内设置一个变量试试看)。你要找一两个关于“asp.net页面处理机制”的文章来看看。