我想将转发器用作5x5网格。我有25条记录,我希望以5行5列显示它们。
答案 0 :(得分:0)
转发器是否需要?如果不使用DataList。它完全符合您的要求:它允许您创建列。它管理何时创建新列与行。
请参阅此说明。 http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/datalist.aspx
答案 1 :(得分:0)
我同意@brian chandley的说法,DataList控件是一个易于使用的控件。如果您更喜欢使用休闲桌,可以尝试以下方法 - 在xml方面:
<asp:Table ID="myTable" runat="server">
</asp:Table>
在某些情况下,代码背后(可能是加载或某些点击事件)
List<string> myEmployerList = yourFunctionToPopulateList();
TableRow row = null;
for(int j=0;j<myEmployerList.Count;j++)
{
if (j % 5 == 0) row = new TableRow();
TableCell cell = new TableCell();
cell.Text = myEmployerList[j];
row.Cells.Add(cell);
if (j % 5 == 4) myTable.Rows.Add(row);
}
if(j % 5 != 4) myTable.Rows.Add(row); // Catch uneven rows at the end
答案 2 :(得分:0)
.aspx:
<table class="gridTable" >
<thead>
<tr>
<th>Column1 Display Header</th>
<th>Column2 Display Header</th>
<th>Column1 Display Header</th>
</tr>
</thead>
<tbody>
<asp:Repeater ID="grd_data" runat="server">
<ItemTemplate>
<tr>
<td><%# Eval("SqlTableColumn1")%></td>
<td><%# Eval("SqlTableColumn2")%></td>
<td><%# Eval("SqlTableColumn3")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
.cs:
grd_data.DataSource = _dataTable; //(DataTable)_dataTable => is sent by SQL
grd_data.DataBind();
答案 3 :(得分:-1)
当你说“网格”时,假设你的意思是一个html表,只需将标签放在Repeater外面并将表行放在里面:
<table>
<asp:Repeater ID="foo" DataSource="bla" runat="server">
<ItemTemplate>
<tr>
<td>Col 1</td>
<td>Col 2</td>
...
</tr>
</ItemTemplate>
</asp:Repeater>
</table>