【问题标题】:html table go back to first row second columnhtml表格回到第一行第二列
【发布时间】:2015-02-06 02:17:10
【问题描述】:

在这个jsfiddle example

是我要找的输出,左边是表头,右边是对应的数据.... 一旦我到达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

感谢任何回复

【问题讨论】:

  • 您知道您将拥有多少列吗?如果是这样,对列使用 for 循环,对其中的行使用循环
  • 总是 2 列是的,但可以是任意数量的行

标签: c# html html-table


【解决方案1】:

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,要么最终会丢失一些数据。

【讨论】:

    【解决方案2】:

    是的,您可以使用 GOTO 来执行此操作,但这是非常禁止的:

    http://msdn.microsoft.com/fr-fr/library/13940fs2.aspx

    问候

    【讨论】:

      猜你喜欢
      • 2018-10-11
      • 1970-01-01
      • 2020-07-24
      • 2012-06-03
      • 2014-04-03
      • 2017-03-03
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多