陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

有时候我们希望让数据库中的多行记录用一行来显示,比如每5个记录行合并为一行显示。这里用Repeater绑定数据显示为例(又是Repeater,怎么样,他的威力不同一般吧。真的是爱死他了。)

我这里有两种方法,经过测试,都成功了。

第一种方法:

没得说,首先推荐最简单的一种方法。代码如下:

<div style="width:1000px;">
<asp:Repeater ID="filenamelist_repeater" runat="server">
<headertemplate>
</headertemplate>
<ItemTemplate>
<div style="float:left;width:200px; height:150px">
<%# Eval("CLASSNAME") %>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</div>

一行显示多少个由外<div>的width:1000px,和内<div>的width:200px来确定。此例中是一行显示5条记录(每个记录占200px)。 另外style="float:left"这个要设

置。这样一行显示完5条记录后就会自动换行了。(怎么样,简单的很吧。就是简单了用了一点点CSS+div而已)

第二种方法:

另一种方法就比较传统了。把记录行都放入<table>里。每输入5行记录后(假设一行显示数据表记录5行记录),在Repeater里动态添加<tr><tr>使其换行。用这种方法去实现似乎也很理所当然,但是知道怎么去实现吗?代码如下:

<asp:Repeater runat="server" id="repeater1" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table width="100%" border=0 align="center"><tr>
</HeaderTemplate>
<ItemTemplate>
<td><%#Eval("绑定字段")%></td>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>

后台代码:

//在Repeater中的ItemDataBound事件里动态添加<tr>使其换行。

protected int i=0;
protected void Repeater1_ItemDataBound(object src,RepeaterItemEventArgs e)
{
if(i%5==0)

{
e.Item.Controls.Add(new LiteralControl("</tr><tr>")); //动态添加<tr> 使其换行。看清楚了,这里是</tr><tr> 我并没有糊涂
}
i++;

}

两种方法一比较,很显然第一种方法非常的简单。只要前台处理下就行了。但第二种方法也不复杂,而且也符合逻辑。

下面我简单分析下两种方法的优势

第一种最简便,而且可能还可以解决多个表显示的问题。比如结合我之前所说的Repeater嵌套使用。让多个表里面的多个行合并显示(上述所说的都是“一表多行合并显示”, 如何“多表多行合并显示”可以参考《Repeater控件里的大智慧Repeater的嵌套使用》)。

第二种不用考虑太多样式的设计,而且不像第一种方法在<div>里直接设置的width为px。第一种方法可能会在不同的显示器,显示的数据会在屏幕不同的地方。但我们还是可以通过CSS样式来解决显示问题。 第二种方法很适合“一表多行合并显示”,当然也可以“多表多行合并显示”。只要外面的Repeater和嵌套在里面的Repeater控件都激发ItemDataBound事件即可。

posted on   宏宇  阅读(1531)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2008-08-14 IIS安装时,安装程序无法复制一个或多个文件。特定错误码是0x4b8
< 2011年8月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示