有时候我们希望让数据库中的多行记录用一行来显示,比如每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事件即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2008-08-14 IIS安装时,安装程序无法复制一个或多个文件。特定错误码是0x4b8