自动生成id的值

heli_1005 2013-07-22 06:34:06
我是在后台循环生成的多个 textBox ,给它设置id后, 它的id为 txtXuhao+i 在b方法里面怎么取到所有控件的Text值呢,

public void a()
{
for (int i = 0; i < dsDeta.Tables[0].Rows.Count; i++)
{
TableRow row = new TableRow();
TableCell cell = new TableCell();
txtXuhao = new TextBox();
txtXuhao.Width = 78;
txtXuhao.ID = "txtXuhao" + i;
cell.Controls.Add(txtXuhao);
row.Cells.Add(cell);
HolderTable.Rows.Add(row);
}
}
public void b()
{
for (int i = 0; i < dsDeta.Tables[0].Rows.Count; i++)
{
//想得到所有textbox的值
}
}
...全文
377 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyx266 2013-07-23
  • 打赏
  • 举报
回复
回发后 页面会重新生成,这个时候你动态创建的控件就没有了. 你需要把a()方法里创建的textbox的id全部保存起来,比如session或者ViewState中 然后你在page的Page_Init方法中重新创建,这样你就可以this.FindControl("id")取到对应的 控件
  • 打赏
  • 举报
回复
FindControl
  • 打赏
  • 举报
回复
有个想法 用JS去实现的 给textbox加一个相同的class 用$(".class") 取到所有text的集合 然后在这个集合中取到所有textbox的ID
heli_1005 2013-07-23
  • 打赏
  • 举报
回复
引用 5 楼 zhoufeng0401 的回复:
TextBox tb=(TextBox)dsDeta.Tables[0].Rows[i].FindControl("txtXuhao" + i);
.FindControl 这样写,点不出来 回发了,是的。
hutaopl2 2013-07-23
  • 打赏
  • 举报
回复
引用 5 楼 zhoufeng0401 的回复:
TextBox tb=(TextBox)dsDeta.Tables[0].Rows[i].FindControl("txtXuhao" + i);
+1
persuit666 2013-07-23
  • 打赏
  • 举报
回复
动态添加的控件在回发的时候 应该就没有了!不信你试试。所以你怎么取也取不到,方法是再重新加载一遍添加的方法
persuit666 2013-07-23
  • 打赏
  • 举报
回复
TextBox tb=(TextBox)dsDeta.Tables[0].Rows[i].FindControl("txtXuhao" + i);
heli_1005 2013-07-23
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
参考这个写法: TextBox textBox = this.form1.FindControl("txtXuhao" + i) as TextBox;
为什么我得到的是空的呢
aellonxie 2013-07-23
  • 打赏
  • 举报
回复
TextBox textBox = this.form1.FindControl("txtXuhao" + i) as TextBox;
persuit666 2013-07-23
  • 打赏
  • 举报
回复
TextBox tb=(TextBox)dsDeta.Tables[0].Rows[i].FindControl("txtXuhao" + i);
persuit666 2013-07-23
  • 打赏
  • 举报
回复
引用 11 楼 laiyongxin 的回复:
回发后 页面会重新生成,这个时候你动态创建的控件就没有了. 你需要把a()方法里创建的textbox的id全部保存起来,比如session或者ViewState中 然后你在page的Page_Init方法中重新创建,这样你就可以this.FindControl("id")取到对应的 控件
这个应该是对的
饕餮123 2013-07-23
  • 打赏
  • 举报
回复
引用 6 楼 zhoufeng0401 的回复:
动态添加的控件在回发的时候 应该就没有了!不信你试试。所以你怎么取也取不到,方法是再重新加载一遍添加的方法
是啊,楼主 可以去request.forms值
ali_mushishi 2013-07-23
  • 打赏
  • 举报
回复
引用 6 楼 zhoufeng0401 的回复:
动态添加的控件在回发的时候 应该就没有了!不信你试试。所以你怎么取也取不到,方法是再重新加载一遍添加的方法
+1
heli_1005 2013-07-23
  • 打赏
  • 举报
回复
引用 6 楼 zhoufeng0401 的回复:
动态添加的控件在回发的时候 应该就没有了!不信你试试。所以你怎么取也取不到,方法是再重新加载一遍添加的方法
编辑功能:文本框是动态添加的控件, 我修改了文本框的值,按保存时,得不到控件修改后的值,得到的总是之前赋值的值。这个问题也是回发吗?
全栈极简 2013-07-22
  • 打赏
  • 举报
回复
参考这个写法: TextBox textBox = this.form1.FindControl("txtXuhao" + i) as TextBox;

62,041

社区成员

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

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

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

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