asp.net repeater 读取数据库动态分列显示

NeighborPlus 2012-02-03 01:59:26
直接步入正题,寄希望于高手解决。
如图所示效果:

如何用repeater控件实现图中品牌列表显示效果,而且图中每行最多4条记录,列动态显示。
附码:

<div class="cncn clearfix">
<ul>
<li><a href="#">福斯曼</a></li>
<li><a href="#">滨特尔</a></li>
<li><a href="#">林内</a></li>
<li><a href="#">高仪</a></li>
</ul>
<ul>
<li><a href="#">华帝</a></li>
<li><a href="#">威米蒂</a></li>
<li><a href="#">世保康</a></li>
<li><a href="#">杜邦</a></li>
</ul>
<ul>
<li><a href="#">西门子</a></li>
<li><a href="#">伊莱克斯</a></li>
<li><a href="#">爱惠浦</a></li>
<li><a href="#">弗兰卡</a></li>
</ul>
<ul>
<li><a href="#">3M</a></li>
<li><a href="#">福佑</a></li>
<li><a href="#">艾肯</a></li>
<li><a href="#">申花</a></li>
</ul>
<ul>
<li><a href="#">铂浪高</a></li>
<li><a href="#">白鸟</a></li>
</ul>
</div>

...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
刚刚在火狐、谷歌、IE、360等浏览器上进行调试,发现火狐与谷歌浏览器显示不正常,
如图所示:

郁闷?
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
weimeiangle,您好。
图中显示的每列的记录数不一致,怎样实现前几列记录数一致,最后一列不足的话,正常从上至下显示?
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
weimeiangle,您好。
对于您的及时回复我表示非常感谢。
刚刚又调试了一次,如图所示:

希望能交个朋友。我的QQ:215645471。
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rddisney 的回复:]
用repeater控件如何实现动态多列显示呢。
[/Quote]
将所有数据放入datatable中,用dataview过滤吧。
过滤完后,将过滤好的数据给repeater。
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
weimeiangle,您好。
按照您所提供的解决方案,未实现我想要的效果。
测试效果图如下:
weimeiangle 2012-02-03
  • 打赏
  • 举报
回复
<asp:Repeater ID="rptStatus" runat="server" OnItemDataBound="rptStatus_ItemDataBound">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><a href="#"> <%#DataBinder.Eval(Container.DataItem, "brand")%></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>



private int i = 0;

protected void rptStatus_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 4 == 0 && i > 0)
{
e.Item.Controls.Add(new LiteralControl("</ul><ul>"));
}
i++;
}
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
weimeiangle,您好。
“3”是限制列数吗?
用repeater能否生成html的格式为我问题中所提供的html样式吗?
即:

<div>
<ul>
<li><a href="">内容</a></li>
...........
<li><a href="">内容</a></li>//这里面的<li></li>是动态生成的。
</ul>
...........
<ul>
<li><a href="">内容</a></li>
...........
<li><a href="">内容</a></li>//这里的<li></li>是动态生成的。
</ul>//这里的<ul></ul>也是动态生成的。
</div>

问题补充:记录是从数据库中动态读取的,如何实现动态列绑定到repeater.
weimeiangle 2012-02-03
  • 打赏
  • 举报
回复
前台:
<asp:Repeater ID="rptStatus" runat="server" OnItemDataBound="rptStatus_ItemDataBound">
<HeaderTemplate>
<table>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<%#DataBinder.Eval(Container.DataItem, "brand")%>
</td>
</ItemTemplate>
<FooterTemplate>
</tr> </table>
</FooterTemplate>
</asp:Repeater>

后台:
private int i = 0;

protected void rptStatus_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 3 == 0 && i > 0)
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}
i++;
}
NeighborPlus 2012-02-03
  • 打赏
  • 举报
回复
用repeater控件如何实现动态多列显示呢。
古兰色回忆 2012-02-03
  • 打赏
  • 举报
回复
不用控件其实也可以的。
前台:

<div class="cncn clearfix" runat="server" id="div_li">
</div>

后台:

StringBuilder sb = new StringBuilder();
for(int i=0;i<dt.rows.count;i++)
{
sb.Append("<li></li>");
}

在后台将HTML代码编写好。
然后

div_li.InnerHTML = sb.toString();

我只是稍稍举一个例子。具体的后台循环可能是需要一个嵌套循环了。
abcdef133 2012-02-03
  • 打赏
  • 举报
回复
<div style="width:总宽度"><ul><li style="width:总宽度/4;float: left;">内容</li></ul></div>

循环li

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧