【发布时间】:2016-08-21 20:09:51
【问题描述】:
我想知道是否可以用一个 foreach 填充不同的表。
我有 5 张桌子 tbl0、tbl1、tbl2、tbl3、tbl4,目前我每张桌子使用一次下面的代码。
//fill *dtTable* with SQL
foreach (DataRow dr in dtTable.Rows)
{
TableHeaderRow tHRow = new TableHeaderRow();
TableHeaderCell tHeader = new TableHeaderCell();
tHeader.Text = dr.Field<string>("Loc");
tHRow.Cells.Add(tHeader);
tbl0.Rows.Add(tHRow);
//fill 'hl' with sql
tCell.Controls.Add(hl);
tRow.Controls.Add(tCell);
tbl0.Rows.Add(tRow);
}
我的想法是这样的:
//fill *dtTable* with SQL
int i = 0;
foreach (DataRow dr in dtTable.Rows)
{
string TABLENAME = "tbl"+i;
TableHeaderRow tHRow = new TableHeaderRow();
TableHeaderCell tHeader = new TableHeaderCell();
tHeader.Text = dr.Field<string>("Loc");
tHRow.Cells.Add(tHeader);
(Table)this.FindControl(TABLENAME).Rows.Add(tHRow); // does not funktion, just an idea
//fill 'hl' with sql
tCell.Controls.Add(hl);
tRow.Controls.Add(tCell);
(Table)this.FindControl(TABLENAME).Rows.Add(tRow); // does not funktion, just an idea
i++;
}
我怎样才能拥有一种动态的TableName,这样我就不需要五次相同的代码了?
【问题讨论】:
-
使用
foreach这样做会有点笨拙。你为什么要避免for循环?我假设每个表的行数相同。 -
每个表可以有不同数量的行,每个 DataRow 都会创建一个表