protected void myBtn_Click(object sender, EventArgs e)
{
TextBox tb=new Textbox()
tb.id="myTextBox";
tb.text="自动生成的文本框";
this.controls.add(tb);
}
//生成
protected void myBtn1_Click(object sender, EventArgs e)
{
response.write((this.findcontrol("myTextBox") as textbox).text.tostring());
}

解决方案 »

  1.   

    ls的
    输出文本里面的text还要加个循环
    for(int i=0;i<this.Controls.count;i++)
    {
    if(this.findcontrol[i] is textbox)
    {
    TextBox textbox=(TextBox)panel.Controls[i];
    response.writer(textbox.text);
    }
    }如果把new出来的textbox控件放在一个panel里面这样找起来就更好一点
      

  2.   

    private void Button1_Click(object sender, System.EventArgs e)
    {
    TextBox tx=new TextBox();
    this.Panel1.Controls.Add(tx);
    }
      

  3.   

    for(int i=0;i<this.Controls.count;i++)
    {
    if(this.findcontrol[i] is textbox)
    {
    TextBox textbox=(TextBox)panel.Controls[i];
    response.writer(textbox.text);
    }
    }
    =================================
    不能用 findcontrol(i)吧  里面参数是控件名称string的
    在panel中的控件要指定顺序
      

  4.   


    public partial class _Default : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                Button2.Visible = false;
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button2.Visible = true;
            if   (ViewState["TextBoxNumber"]   ==   null)  
         
                ViewState["TextBoxNumber"]   =   1;
            else   
               ViewState["TextBoxNumber"]   =   (int)ViewState["TextBoxNumber"]   +   1;   
        
             int   i;
           TextBox[] txt = new TextBox[(int)ViewState["TextBoxNumber"]];        for (i=0;   i<(int)ViewState["TextBoxNumber"];   i++)   
              {   
                 txt[i]   =   new   TextBox();
                 txt[i].ID = "txt" + i.ToString();
                 txt[i].Text = i.ToString();
                 Panel1.Controls.Add(txt[i]);   
               }    }
        protected void Button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.Panel1.Controls.Count; i++)
            {
                string txtID = "txt" + i.ToString();
                if ((this.Panel1.FindControl(txtID)) == null)
                { 
                }
                else
                {
                  
                  Response.Write(i.ToString());
                }
            }    }
    }
    用以一代码还是不能获得值,高分求高手赐解!
      

  5.   

    public class WebForm1 : Page
    {
    protected System.Web.UI.WebControls.Panel Panel1;
    protected System.Web.UI.WebControls.Button Button2;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {

    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);
    for(int i=0;i<TextCount;i++)
    {
    TextBox tb = new TextBox();
    tb.ID ="Text"+i.ToString();
    Panel1.Controls.Add( tb );
    }
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Button2.Click += new System.EventHandler(this.Button2_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    TextBox tb = new TextBox();
    tb.ID ="Text"+TextCount++.ToString();
    Panel1.Controls.Add( tb );
    } private void Button2_Click(object sender, System.EventArgs e)
    {
    foreach( Control c in Panel1.Controls)
    {
    if(c is TextBox)
    {
    TextBox tb = c as TextBox;
    Response.Output.Write("{0}={1}<br>",tb.ID,tb.Text);
    }
    }
    } protected int TextCount
    {
    get
    {
    if(Request.Form["TextCount"] != null)
    return int.Parse(Request.Form["TextCount"]);
    else
    return 0;
    }
    set
    {
    RegisterHiddenField("TextCount",value.ToString());
    }
    }
    }
      

  6.   

    把上面protected int TextCount 代码换掉 上面的代码创建的控件会丢 private int _TextCount=-1;
    protected int TextCount
    {
    get
    {
    if( _TextCount<0)
    {
    if(Request.Form["TextCount"] != null)
    _TextCount =int.Parse(Request.Form["TextCount"]);
    else
    _TextCount=0;
    }
    return _TextCount;
    }
    set
    {
    _TextCount=value;
    }
    }
    protected override void OnPreRender(EventArgs e)
    {
    if(TextCount>0)
    RegisterHiddenField("TextCount",TextCount.ToString());
    base.OnPreRender (e);
    }