是我要找的输出,左边的表头和右边的相应数据....
一旦我到达foreach (DataColumn c in dr.Table.Columns)
的末尾,是否可以说 - 回到第一行,第二列?
foreach (DataRow dr in currentAttribs.Rows)
{
foreach (DataColumn c in dr.Table.Columns)
{
headerRow = "<tr><th>" + c.ColumnName.ToString() + "</th></tr><br><br>";
Literal lcl = new Literal();
lcl.Text = headerRow;
divFeatureInfo.Controls.Add(lcl);
}
foreach (object column in dr.ItemArray)
{
tableRow = "<TR><TD>" + column.ToString() + "</TD></TR><br><br>";
Literal lc = new Literal();
lc.Text = tableRow;
divFeatureInfo.Controls.Add(lc);
}
}
这段代码给了我输出:
id
Geom
Day
05
489090
Monday
我想:
id 05
Geom 489090
Day Monday
感谢任何回复
答案 0 :(得分:0)
dr.ItemArray的长度是否总是等于dr.Table.Columns的数量? 如果是这样,请创建一个for循环,按id引用数组项和表列,然后将所有数据写入一个字符串。
foreach (DataRow dr in currentAttribs.Rows)
{
string row;
for(var i = 0; i < dr.Table.Columns.Count; i++)
{
row = "<tr><th>" + dr.Table.Columns[i].ColumnName.ToString() + "</th><td>" + + dr.ItemArray[i].ToString() + "</td></tr><br><br>";
Literal lcl = new Literal();
lcl.Text = row;
divFeatureInfo.Controls.Add(lcl);
}
}
当然,如果您无法确保计数/长度始终相同,您将获得一些令人讨厌的IndexOutOfBoundsException或最终遗漏一些数据。
答案 1 :(得分:0)