我在c#中动态创建了一个包含2列的表:第1列使用SqlDataReader从存储过程中获取数据,第2列由文本框组成,与第1列完全一样长。最后,表放在占位符中并显示在UI上。 它背后的想法确实构建了一个表单,在完成它之后,有一个按钮必须从每个文本框中获取值并将其保存在数据库的表中。
HtmlTableRow row;
HtmlTableCell cell;
HtmlTableCell celltf;
TextBox text;
protected void createTables(){
HtmlTable dataTable = new HtmlTable();
HtmlTableRow header = new HtmlTableRow();
while (rdr.Read())
{
row = new HtmlTableRow();
for (int j = 0; j < rdr.FieldCount; j++)
{
cell = new HtmlTableCell();
cell.InnerText = (rdr.GetValue(j)).ToString();
celltf = new HtmlTableCell();
text = new TextBox();
celltf.Controls.Add(text);
row.Cells.Add(cell);
row.Cells.Add(celltf);
}
dataTable.Rows.Add(row);
}
dataTable.DataBind();
}
单击按钮时,从每个文本框中获取值的最佳方法是什么?由于Button_clicked()是一个单独的函数。
答案 0 :(得分:0)
我不能保证这样的工作方式如下:http://lukieb.blogspot.co.uk/2009/03/event-handlers-with-dynamic-controls.html因为它略有不同但是如果你总是在page_load中重新创建相同数量的控件,我认为表单会在你做的时候正确设置它们的所有值回发到事件处理程序。然后,您应该能够在表上执行一组简单的foreach调用。大概你的表是在aspx页面上声明的,还是以其他方式添加到页面控件而不仅仅是在本地创建?