【问题标题】:How to build a html table dynamically based on dataset如何根据数据集动态构建html表格
【发布时间】:2018-05-08 03:33:37
【问题描述】:

我有一个数据集

DataSet ds = Access.Get(startdate, enddate);

我返回了大约 70 行。我需要基于此构建一个 html 表以提供打印选项。关于如何做到这一点的任何建议?谢谢

【问题讨论】:

  • 我想到的前两个选项是嵌套循环或 Linq。你试过什么?
  • 我已经用数据表做到了这一点,但我被数据集卡住了

标签: c# asp.net


【解决方案1】:

将 DataSet 表传递给 ConvertDataSetTableToHTML。在调用之前确保您的数据集始终有包含记录的表。

if (ds != null)
{
    if (ds.Tables.Count >0 )
    {
        if (ds.Tables[0].Rows.Count > 0)
        {
            ConvertDataSetTableToHTML(ds.Tables[0]);
        }
    }
}
public static string ConvertDataSetTableToHTML(DataTable dt)
{
    string html = "<table>";
    //add header row
    html += "<tr>";
    for(int i=0;i<dt.Columns.Count;i++)
        html+="<td>"+dt.Columns[i].ColumnName+"</td>";
    html += "</tr>";
    //add rows
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        html += "<tr>";
        for (int j = 0; j< dt.Columns.Count; j++)
            html += "<td>" + dt.Rows[i][j].ToString() + "</td>";
        html += "</tr>";
    }
    html += "</table>";
    return html;
}

我刚刚为您的场景使用了来自here 的代码。

【讨论】:

  • 但是如何将返回的html添加到aspx页面中
  • 您可以尝试在 &lt;div id="divDynamicHTMLTable" runat="server"&gt;&lt;/div&gt; 之类的 aspx 中创建 div 并在文件隐藏代码 divDynamicHTMLTable.InnerHtml= ConvertDataSetTableToHTML(ds.Tables[0]); 中创建 div 吗?通过替换 ConvertDataSetTableToHTML(ds.Tables[0]); 将代码放在 if 条件后面的 change 中。我现在没有 VS,所以请尝试告诉我
  • 我试过了,效果很好 和字符串结果 = ConvertDataSetTableToHTML(dsPNPrint.Tables[0]); lblResult.Text = 结果;
  • 很高兴听到。您能否将解决方案标记为已回答?
  • 但样式不适用。知道为什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 2013-11-12
  • 2018-03-03
  • 1970-01-01
  • 2018-12-13
  • 2012-10-30
相关资源
最近更新 更多