1 属性设成服务器端了吗  <.. Runat="server">
2 也可在生成后注册事件,方便后期处理,如 txtNew.TextChange += new ....;

解决方案 »

  1.   

    我是这样写的            TableCell tc0_1 = new TableCell();            TextBox tb_mid = new TextBox();
                tb_mid.ID = "tb_mid";
                tb_mid.Text = Col_Id;
                tc0_1.CssClass = "tables_c1";
                tc0_1.Controls.Add(tb_mid);
                tr0.Cells.Add(tc0_1);            Table_Info.Rows.Add(tr0);
    我想在生成以后能访问他,获得他的值就行,应该怎么做呢
      

  2.   

    我是在一个类里写了一个自动根据属性生成的若干个textbox,再附加到一个table里(服务器空间),再页面加载的时候通过
    Panel1.Controls.Add(table); 加载到页面上,这些都没问题,可是在提交页面的时候这些控件都访问不了,我是想问怎样能
    让这些控件如同拖拽上的控件一样被全程访问,是不是要注册一个page事件什么的,这块我不是很清楚
      

  3.   

    楼主的主要问题是动态添加控件后,按提交怎么找到该控件,是吗?
    如果是这样,我举一个简单例子:
    1.动态创建一个TextBox:
    protected void Page_Load(object sender, EventArgs e)
    {
         TextBox myTextBox = new TextBox();
         myTextBox.ID = "TextBox1";
         this.form1.Controls.Add(myTextBox); 
    }
    2.拖入一个Button,在Button的Click下,获得动态创建TextBox输入的字符
    protected void Button1_Click(object sender, EventArgs e)
    {
         TextBox myT = (TextBox)this.form1.FindControl("TextBox1");
         Response.Write(myT.Text);
    }
      

  4.   

    可能我没写清楚,我是这样做的class sample
    {
     public Table buildview()
    {
        textbox tb1 = new textbox;
        tablerow tr = ...
        ...
        table.row.add(tr)
       ..
        return table;
    }
    }在default。aspx  页面的load事件是这样写的talbe tab = new table;
    table = sample.buildview();
    Panel1.Controls.Add(table);在页面显示没问题,就是在提交的时候找不到,我也知道这样做可能不妥,但是还是想知道怎么样解决,谢谢 
      

  5.   

    注意这个问题没“属性设成服务器端了吗  <.. Runat="server"> ”
      

  6.   

    textbox tb1 = new textbox;  这个不就是服务空间么,在load事件时都是可以访问到这些动态生成的控件的,只是不能像拖拽空间那样在整个周期都能访问,我想肯定要往前台注册点什么,但是具体我不会,谁给讲讲啊