我在一个广告网站上工作,在其中一个页面上展示它的商品。我想在列表视图中显示商品,但我想让我的列表视图在矩阵视图中显示其商品。例如,我的listview读取商品的名称、描述和图像等数据,并在第一行显示前四个数据,在第二行显示下四个数据,依此类推。你能帮帮我吗?我该怎么做?我想使用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>
发布于 2013-07-10 16:58:50
DataList有一组属性来处理您的问题:RepeatColumns、RepeatDirection和RepeatLayout
阅读有关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();
}https://stackoverflow.com/questions/17544633
复制相似问题