如题,如何解决 if (!this.IsPostBack)
{
TextBox t1 = new TextBox();
t1.Text = "aaa";
t1.ID="tb";
this.FindControl("Form1").Controls.Add(t1);

else
{
TextBox t2=new TextBox();
t2.Text = "bbb";
t2.ID = "tb";
this.FindControl("Form1").Controls.Add(t2);
}
不管是否postback,textbox的值始终为aaa
程序需要,两个textbox的id必须一样,如何解决?

解决方案 »

  1.   

    如果你是asp.net1.1,那么给.Text属性赋值语句放到Controls.Add语句后边就行了。如果是aso.net2.0,它是在page_load之后才填入post值的(说实话我对2.0的这个变化感到气愤),你就必须将赋值语句推后,也许page_LoadComplete或者更后的时候。
      

  2.   

    sp1234(吹毛求疵,闭塞言路,炒了这种领导) ( ) 信誉:100    Blog  2006-10-31 12:14:00  得分: 0  
     
     
       如果你是asp.net1.1,那么给.Text属性赋值语句放到Controls.Add语句后边就行了。如果是aso.net2.0,它是在page_load之后才填入post值的(说实话我对2.0的这个变化感到气愤),你就必须将赋值语句推后,也许page_LoadComplete或者更后的时候。
      
     
    asp.1.1的,按您说的先controls.add,然后再赋值,还是不行
      

  3.   

    其他control在controls.add后赋值都可以解决这个问题,textbox不可以
      

  4.   

    避开loadpostbackdata, 这个过程一部分在之前,一部分在之后完成.
        protected void Page_PreRender()
        {
            if (!this.IsPostBack)
            {
                TextBox t1 = new TextBox();
                t1.Text = "aaa";
                t1.ID = "tb";
                PlaceHolder1.Controls.Add(t1);
            }
            else
            {
                TextBox t2 = new TextBox();
                t2.Text = "bbb";
                t2.ID = "tb";
                PlaceHolder1.Controls.Add(t2);
            }
        }这里创建的话,客户端改变的值提交不了.
      

  5.   

    一部分在page_load之前,一部分在page_load之后完成