动态生成的Table控件如何取值? 现在的情况是动态生成了一个table服务器控件,有两列,多少行不确定,要取第二列的值放在一个集合里 怎么搞?这第二列 是textbox或者是dropdownlist 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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>"); } } 二楼的大哥,这样子取不到值啊。Table控件 一提交以后 值就不保存了取不到。帮助文档里的注意 通过编程方式对表行或单元格进行的添加或修改,不会在向服务器执行发送操作后仍继续保留。表行和单元格是其自身的控件,而不是 Table 控件的属性。对表行或单元格进行的更改必须在向服务器进行各次发送之后重建。 那就用session保存呗,无非是调出调入问题. 你说的谁都知道啊,我上面所有动态加载的代码都没放在if(!isPostBack)里,也就是让页面每次回刷都再重新生成一次;所以你要想在后台取到值,必须保证每次回刷都再重建;我上面仅是举一例子,具体情况你自己考虑 我把存值的事件写在哪啊?写在提交按钮里面 TABLE 就访问不到什么东西了 他不保存回传之前 要执行客户端事件写在哪? 就是不知道如何在后台取到table的值啊 郁闷死了 根据session判断,如果为空,执行动态生成table,若不为空,调session内容.用个判断语句框定一下. 讨论,求效率的SQL解决方法! 一个onclick的问题 【150!高分】 文本框问题?? 在asp.net 中如何使用 office web component啊 自定义控件中定义的内部类不能序列化问题 DetailsView插入数据时的验证问题 asp.net中怎样用JavaScript为session赋值 iframe嵌入获取页面源码 ASP.net 怎么利用CMS系统开发出一个网站? 新手问题。 关于ajax调用服务器端方法的问题 asp.net源码下载 新年快乐,散分中....
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>");
}
}
Table控件 一提交以后 值就不保存了取不到。
帮助文档里的
注意 通过编程方式对表行或单元格进行的添加或修改,不会在向服务器执行发送操作后仍继续保留。表行和单元格是其自身的控件,而不是 Table 控件的属性。对表行或单元格进行的更改必须在向服务器进行各次发送之后重建。
写在提交按钮里面 TABLE 就访问不到什么东西了 他不保存回传之前 要执行客户端事件写在哪?