怎么获得动态生成控件的值

licp280 2009-07-10 03:40:00
代码如下

int number = int.Parse(txt_number.Text.ToString());
HtmlTable tb = new HtmlTable();
for (int i = 1; i <= number; i++)
{
HtmlTableRow tr = new HtmlTableRow();
HtmlTableCell td1 = new HtmlTableCell();
HtmlTableCell td2 = new HtmlTableCell();
HtmlTableCell td3 = new HtmlTableCell();
Button bt = new Button();
td1.Attributes.Add("background", "../Images/银条.gif");
td2.Attributes.Add("background", "../Images/银条.gif");
td3.Attributes.Add("background", "../Images/银条.gif");
tr.Height = "33px";
Label lb1 = new Label();
Label lb2 = new Label();
TextBox tb1 = new TextBox();
tb.Width = "100%";
TextBox tb2 = new TextBox();
lb1.Text = "字段名";
lb1.ID = "lb_name" + i;
lb2.Text = "长度";
lb2.ID = "lb_leng" + i;
tb1.ID = "Field" + i;
tb2.ID = "Field_leng" + i;
tb2.Text = "1000";
bt.Text = "删除此行";
bt.Command += new CommandEventHandler(this.onbutton);
td1.Controls.Add(lb1);
td1.Controls.Add(tb1);
td2.Controls.Add(lb2);
td2.Controls.Add(tb2);
td3.Controls.Add(bt);
bt.ID = "bt_delete" + i;
tr.Cells.Add(td1);
tr.Cells.Add(td2);
tr.Cells.Add(td3);
tb.Rows.Add(tr);


}
Page.Controls.Add(tb);
Control dir = Page.FindControl("dongtai");
dir.Controls.Add(tb);


最后就是怎么在cs代码里通过一个事件,获得动态生成的文本框里的值,先谢谢各位了,
我试过的方法也贴下来吧
Control dir = Page.FindControl("dongtai");
for (int i = 1; i <= number; i++)
{
//TextBox Field[i]=new TextBox();
// (Field+i)
// ImageButton1.Attributes.Add("onclick", "document.getElementById('hdnMyTextBox').value=document.getElementById('Field'" + i + "').value;return true;");
//TextBox tb = (TextBox)(dir.FindControl("Field" + i));// + " Nvarchar(" + ((TextBox)(Page.FindControl("Field_leng1"))).Text + "),";
//Response.Write(tb.Text);
}
这些都不行
...全文
522 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
licp280 2009-07-10
  • 打赏
  • 举报
回复
我是在加载后,单击某个按钮添加的控件,是不是因为获取值的时候那些按钮不见了所以获不到值
wangyinnet 2009-07-10
  • 打赏
  • 举报
回复
可以用JS记录下某控件的值放进隐藏域里,其实.net本身也是这么做的
yechd 2009-07-10
  • 打赏
  • 举报
回复
foreach(HtmlTableRow row in tb.Rows)
{
foreach(HtmlTableCell cell in row.Cells)
{
foreach(Control ctl in cell.Controls)
{
if (ctl.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox txt = (TextBox)ctl;
...
}
...
}
}
}
thinkingforever 2009-07-10
  • 打赏
  • 举报
回复
看一下dir中有没有控件?添加控件的方法在什么时候执行的?可能是在执行后面方法的时候因为是服务器端方法,所以需要刷新页面,所以前面添加控件就没了
xingzhiasa 2009-07-10
  • 打赏
  • 举报
回复
我一般喜欢用取巧的办法用DATALIST绑定多行空数据让生成多个自己想要的控件……

那么获取起来就十分方便了……

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧