现在的情况是动态生成了一个table服务器控件,有两列,多少行不确定,要取第二列的值放在一个集合里  怎么搞?
这第二列 是textbox或者是dropdownlist

解决方案 »

  1.   


     protected void Page_Load(object sender, EventArgs e)
        {
            Table tab = new Table();
            tab.ID = "table1";        TableRow tr1 = new TableRow();
            TableCell tc11 = new TableCell();
            TextBox tb1 = new TextBox();
            tb1.Text = "textbox1";
            tc11.Controls.Add(tb1);        TableCell tc12 = new TableCell();
            DropDownList ddl1 = new DropDownList();
            ddl1.Items.Add("ddl1");
            ddl1.Items.Add("ddl11");
            tc12.Controls.Add(ddl1);        tr1.Controls.Add(tc11);
            tr1.Controls.Add(tc12);
            tab.Controls.Add(tr1);
            TableRow tr2 = new TableRow();
            TableCell tc21 = new TableCell();
            DropDownList ddl2 = new DropDownList();
            ddl2.Items.Add("ddl2");
            ddl2.Items.Add("ddl22");
            tc21.Controls.Add(ddl2);        TableCell tc22 = new TableCell();
            TextBox tb2 = new TextBox();
            tb2.Text = "textbox2";
            tc22.Controls.Add(tb2);        tr2.Controls.Add(tc21);
            tr2.Controls.Add(tc22);
            tab.Controls.Add(tr2);        this.form1.Controls.Add(tab);    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            ArrayList results = new ArrayList();//定义一集合存结果        Table tab = (Table)this.FindControl("table1");
            foreach (TableRow tr in tab.Rows)
            {
                if (tr.Cells[1].Controls[0].GetType().Name == "DropDownList")
                {
                    results.Add(((DropDownList)tr.Cells[1].Controls[0]).SelectedItem.Text);
                }
                else if (tr.Cells[1].Controls[0].GetType().Name == "TextBox")
                {
                    results.Add(((TextBox)tr.Cells[1].Controls[0]).Text);
                }
            }        foreach (object o in results)
            {
                Response.Write(o.ToString() + "<br>");
            }
        }
      

  2.   

    二楼的大哥,这样子取不到值啊。
    Table控件 一提交以后 值就不保存了取不到。
    帮助文档里的
    注意   通过编程方式对表行或单元格进行的添加或修改,不会在向服务器执行发送操作后仍继续保留。表行和单元格是其自身的控件,而不是 Table 控件的属性。对表行或单元格进行的更改必须在向服务器进行各次发送之后重建。
      

  3.   

    那就用session保存呗,无非是调出调入问题.
      

  4.   

    你说的谁都知道啊,我上面所有动态加载的代码都没放在if(!isPostBack)里,也就是让页面每次回刷都再重新生成一次;所以你要想在后台取到值,必须保证每次回刷都再重建;我上面仅是举一例子,具体情况你自己考虑
      

  5.   

    我把存值的事件写在哪啊?
    写在提交按钮里面  TABLE 就访问不到什么东西了 他不保存回传之前 要执行客户端事件写在哪?
      

  6.   

    就是不知道如何在后台取到table的值啊 郁闷死了
      

  7.   

    根据session判断,如果为空,执行动态生成table,若不为空,调session内容.用个判断语句框定一下.