在 ASP 页面上创建充满列表的 html 表

本文关键字:列表 html 满列表 ASP 创建 | 更新日期: 2023-09-27 18:30:53

我有两个列表:

List<string> userID = new List<string>();
List<string> dates = new List<string>();

这两者将始终具有相同数量的元素(下面的示例):

userID = [   11    |   22    |   33    |   44    |   55    ]
dates =  [ 1/22/13 | 2/22/13 | 3/22/13 | 4/22/13 | 5/22/13 ]

我想做的是在ASP页面上创建一个带有两列的HTML表,由列表的元素填充,userID[0]是第一列下的第一个单元格,date[0]是第二列下的第一个单元格,如下所示:

columnName | column2Name
---------------------------
    11     |   1/22/13
    22     |   2/22/13

现在我有:

<table style="border:solid black 2px" width="100%">
<tr style="border-bottom:solid black 2px">
   <td align="left"><%= dateSelect %></td>
   <td align="right">Date of Report: <%= System.DateTime.Now.ToString("MM/dd/yyyy") %></td>
   </tr>
</table>

其中dateSelect是一个字符串。

这显示一个单行表,它有效,并且是我想要在表顶部显示的。下面是我选择的带有标题的两列,然后是元素。

我只是不确定该怎么做(没有太多的HTML经验)。我应该做一个我在类似问题中看到的建议Repeater,然后添加headeritem模板吗?还是有更简单的方法?

在 ASP 页面上创建充满列表的 html 表

设计页面:

<asp:Table ID="Table1" runat="server"></asp:Table>

在后面的代码中:

for(int i = 0; i < itemsnumber; i++){
    TableRow tr = new TableRow();
    TableCell tc1 = new TableCell();
    TableCell tc2 = new TableCell();
    tc1.Controls.Add(new LiteralControl("<span>" + List1[i].ToString() + "</span>"));
    tc2.Controls.Add(new LiteralControl("<span>" + List2[i].ToString() + "</span>"));
    tr.Controls.Add(tc1);
    tr.Controls.Add(tc2);
    Table1.Controls.Add(tr);
}

如果您不想使用中继器,则可以按照以下示例以更类似于 mvc、经典 asp 等的样式循环和呈现内容:

<table>
  <% foreach (var myItem in g) { %>
    <tr><td><%= myItem.title %></td></tr>
  <% } %>
</table>

源:如何像在 MVC 中一样在 WebForms 中循环访问数据

我想补充一点,中继器将是网络表单更典型的方法,即对于任何其他开发人员稍后查看您的代码来说,这是一种更期望的方法。