如何在中继器控制中获得5x5网格

时间:2010-09-16 16:22:43

标签: asp.net repeater

我想将转发器用作5x5网格。我有25条记录,我希望以5行5列显示它们。

4 个答案:

答案 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>