0

我正在开发一个在其中一个页面上展示其商品的广告网站。我想在列表视图中显示该商品,但我希望我的列表视图在矩阵视图中显示其商品。例如,我的列表视图读取商品名称、描述和图像等数据,并在第一行显示前四个,在第二行显示接下来的四个,依此类推。你能帮我怎么做吗?我想使用 div ins Listview 的 Itemtemplate 这对我来说是正确的代码吗?

<asp:DataList ID="datalist_Data" runat="server">
<HeaderTemplate>
    <table>
        <tr style="background-color: #6699FF; color: #FFFFFF; font-size: large;">
            <td width="150">Column 1</td>
            <td width="150">Column 2</td>
            <td width="150">Column 3</td>
            <td width="150">Column 4</td>
        </tr>
    </table>
</HeaderTemplate>
<ItemTemplate>
    <table>
        <tr>
            <td width="150"><%# Eval("c1") %></td>
            <td width="150"><%# Eval("c2") %></td>
            <td width="150"><%# Eval("c3") %></td>
            <td width="150"><%# Eval("c4") %></td>
        </tr>
    </table>
</ItemTemplate>

4

1 回答 1

0

DataList 有一组属性来处理您的问题RepeatColumnsRepeatDirectionRepeatLayout

在MSDN上阅读有关 DataList 控件的更多信息

这是您需要的代码(您Foo的商品类型在哪里):

<asp:DataList runat="server" ID="datalist" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table">
    <HeaderTemplate>
        <table>
            <tr style="background-color: #6699FF; color: #FFFFFF; font-size: large;">
                <td width="150">Column 1</td>
                <td width="150">Column 2</td>
                <td width="150">Column 3</td>
                <td width="150">Column 4</td>
            </tr>
        </table>
    </HeaderTemplate>
    <ItemStyle Width="150" Wrap="true" />
    <ItemTemplate>

        <%# (Container.DataItem as Foo).Name %><br />
        <%# (Container.DataItem as Foo).Description %><br />
        <%# (Container.DataItem as Foo).ImageUrl %>

    </ItemTemplate>
</asp:DataList>

请注意,本文避免了 Eval,因为它需要反思,因此效果不佳。

编辑:这是 C# 代码:

protected void Page_Load(object sender, EventArgs e)
{
    List<Foo> list = GetGoods();

    datalist.DataSource = list;
    datalist.DataBind();
}
于 2013-07-10T08:58:50.063 回答