我有两个清单:
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]是第一列下的第一个单元格,日期[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
,然后添加header
和item
模板?或者有更简单的方法吗?
答案 0 :(得分:1)
设计页面:
<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);
}
答案 1 :(得分:1)
如果您不想使用转发器,您可以按照与mvc,classic asp等类似的样式循环和呈现内容,如下例所示:
<table>
<% foreach (var myItem in g) { %>
<tr><td><%= myItem.title %></td></tr>
<% } %>
</table>
源: How to loop through data in WebForms like in MVC
我想补充一点,转发器是使用webforms的更典型的方法,也就是以后为任何其他开发人员查看代码的更方便的方法。