【发布时间】:2012-12-09 16:58:24
【问题描述】:
我已经为此苦苦挣扎了几个小时,似乎无法在网上找到答案。我在网上找到的几种做法都没有完成这项工作,所以我想我做错了什么。
我创建了一个 Table 对象,放置了几个 TableRow 对象,我在这些对象下放置了 TableCell。此表的一列由我创建的 TextBox 对象组成:
Table productTable = new Table();
int j = 0;
foreach (Product i in prodList)
{
TextBox qttyTB = new TextBox();
qttyTB.ID = "Quantity" + Convert.ToString(j);
qttyTB.Style["width"] = "30px";
qttyTB.Text = "0";
TableRow tableR = new TableRow();
TableCell tableC1 = new TableCell();
tableC1.Text = "<img src='" + i.ImagePath + "' class='ProductImage'/>";
tableR.Controls.Add(tableC1);
TableCell tableC2 = new TableCell();
tableC2.Text = i.Name + " ";
tableR.Controls.Add(tableC2);
TableCell tableC3 = new TableCell();
tableC3.Text = i.Price + " ₪ ";
tableR.Controls.Add(tableC3);
TableCell tableC4 = new TableCell();
tableC4.Controls.Add(tbArray[j - 1]);
tableR.Controls.Add(tableC4);
productTable.Controls.Add(tableR);
j++;
}
TablePH.Controls.Add(productTable);
页面输出工作 100%。现在,单击按钮后,我试图保留已创建的 TextBox 对象的值。尝试了几件事。
【问题讨论】:
-
您是否在使用 Web 表单并利用 ViewState?动态添加的控件需要更多工作 - 请参阅 this article。
-
为什么不能填充数据表并将其保存在会话中,您可以将其绑定到实际上是表的 gridview。
-
您在哪个页面事件中调用了您发布的代码?您应该在
Page_Init或Page_Load页面事件中添加动态创建的控件。 -
Lukasz - 我在 Page_Load 上调用此方法;我遇到的困难是访问“控件层次结构”。页面 -> 表单 -> 表格 -> 表格行 -> 表格单元 -> 文本框
标签: c# asp.net textbox return-value