repeater显示方式求教。

kiaoqq2010 2010-05-12 03:41:23
我想从数据库里读出数据然后绑定repeater。然而我想这样显示。

XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
--------------
控制它1行显示3个,然后就换行一个<hr/>
如此循环。
...全文
333 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
消失的尘芥 2010-05-12
  • 打赏
  • 举报
回复
上msdn细看repeater属性方法
白云任去留 2010-05-12
  • 打赏
  • 举报
回复
如果一定要用repeater,控制好<ul>,<li>的样式,主要是<li>的宽度,一行三个,多了自然会换行
duxj007 2010-05-12
  • 打赏
  • 举报
回复
呵呵~~~~~`
wuyq11 2010-05-12
  • 打赏
  • 举报
回复
datalist repeatcolumns=3
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 4 == 0 && i > 0)
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}
i++;
}
pdsnet 2010-05-12
  • 打赏
  • 举报
回复


<asp:repeater ID="Repeater1" runat="server">

<ItemTemplate>
<asp:PlaceHolder ID="start" runat="server" Visible="<% 根据索引%3==1 true:false %>" ><tr> </asp:PlaceHolder>
<%Eval("dataid") %>

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="<% 根据索引%3==0 true:false %>" ></tr> </asp:PlaceHolder>
</ItemTemplate>


</asp:repeater>


再参考. 不用多说了. 剩余的你自己改吧.
pdsnet 2010-05-12
  • 打赏
  • 举报
回复


if((i+1)%3==1)
{
content+="<tr>";
}
content +="<td id=cus"+i+" class=\"fg_znxx_nr_td\" ><a href=\"#\" class=\"fg_znxx_nr_td_a\" ";
content +=" onmouseover=\"CusMouseVoer("+i+");\" onmouseout=\"tanchuptfxs_card0(1);\" >"+data.Cus[i].nickname.sub(8)+"</a></td>";

if((i+1)%3==0)
{
content +="</tr>";
}



参考 下 根据 repeater 行的索引 判断是否 加 <tr> </tr> 上边已经有答案了..
Shirely_Jiao 2010-05-12
  • 打赏
  • 举报
回复
<table id="tabheader" runat="server" style="background-color:#92D141; table-layout: fixed" visible="false">
<tr>
<td style="width:120px">手机号码</td>
<td style="width:120px">姓名</td>
<td style="width:120px">职位</td>
<td style="width:120px">备注一</td>
<td style="width:120px">备注二</td>
<td style="width:120px">备注三</td>
<td style="width:50px">编辑</td>
<td style="width:50px">删除</td>
</tr>
</table>
<asp:repeater ID="Repeater1" runat="server" DataMember="UserId"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<table style="border-width: 1px;border-style: solid;border-collapse: collapse;border-color: #92D141;table-layout: fixed">
<tr>
<td style="width:120px"><%#Eval("Mobile")%></td>
<td style="width:120px"><%#Eval("RealName")%></td>
<td style="width:120px"><%#Eval("Position")%></td>
<td style="width:120px"><%#Eval("Remark1")%></td>
<td style="width:120px"><%#Eval("Remark2")%></td>
<td style="width:120px"><%#Eval("Remark3")%></td>
<td style="width:50px"><asp:ImageButton ID="imgbtnEdtion" runat="server" ImageUrl="~/@Images/tabPage/114.gif" accp='<%#Eval("UserId") %>'/></td>
<td style="width:50px"><asp:ImageButton ID="imgbtnDelete" runat="server" ImageUrl="~/@Images/tabPage/083.gif" accp='<%#Eval("UserId") %>' OnClientClick="return confirm('是否确定删除?')" OnClick="imgbtnDelete_Click"/></td>
</tr>
</table>
</ItemTemplate>
</asp:repeater>
Xiaoyuan245437 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jxyxhz 的回复:]
否则就自己在后台拼
[/Quote]
强`
kkchcb123 2010-05-12
  • 打赏
  • 举报
回复
DataList
chinalinx 2010-05-12
  • 打赏
  • 举报
回复
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%#Eval("字段") %> | <%#Eval("字段") %> | <%#Eval("字段") %>
<%=gethr()%>
</ItemTemplate>
</asp:Repeater>

-----------------
.cs
int _count=0;

public string gethr()
{
_count++;
if(_count%3==0?"<hr/>":"")
}
yasire 2010-05-12
  • 打赏
  • 举报
回复
我是在后台拼接的!~~~~~~~
myhope88 2010-05-12
  • 打赏
  • 举报
回复
DataList就可控制,要么就用css样式中的左浮动也行的
lorinzhang 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zx75991 的回复:]
用CSS样式控制。一行3个,超过换行。
[/Quote]
fhjzgsy 2010-05-12
  • 打赏
  • 举报
回复

很多时候如果我们用
DataList来控制显示的列数可能会破坏我们的布局,因为DataList
会新生成一个table标签。所以我们需要Repeater来显示。
下面为代码:注意红色部分应该和后台代码对应!
protected int i = 1;
protected void RepeaterSchoolList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i%4==0&&i>0)
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}
i++;
}

<table align="center" cellpadding="0" cellspacing="0" width="900">
<tr>
<asp:Repeater ID="RepeaterSchoolList" runat="server" OnItemDataBound="RepeaterSchoolList_ItemDataBound">
<ItemTemplate>
<td width="257" height="30" align="left" valign="middle"><span class="STYLE8"><a href="College.aspx?id=<%#Eval("id") %>"><%#Eval("name") %></a></span></td>
</ItemTemplate>
</asp:Repeater>
</tr>
</table>

这个方法可以实现
wzh307 2010-05-12
  • 打赏
  • 举报
回复
楼上的几个回答我觉得都不好,居然还有提议用DataList的。
Repeater根据你使用的div或table,在换行时候实际是加入一个新行。

定义一个全局变量i.然后在绑定事件中来判断是否换行。

public void Repeater1_ItemDataBound(object src, RepeaterItemEventArgs e)
{
if (i % 3 == 0)
{
e.Item.Controls.Add(new LiteralControl("</tr><tr><td colspan=3><hr /></td></tr><tr>"));
//div模块的话换div就可以了
}
i++;
}
a82344626 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kiaoqq2010 的回复:]
引用 10 楼 a82344626 的回复:
引用 7 楼 a82344626 的回复:
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%#Eval("字段") %> | <%#Eval("字段") %> | <%#Eval("字段") %>
<br />
</ItemTemplate>
</asp:Repe……
[/Quote]
那道未必!
你SQL查的时候写这这样就不得了?
mackzhaozhonggang 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a82344626 的回复:]
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%#Eval("字段") %> | <%#Eval("字段") %> | <%#Eval("字段") %>
<br />
</ItemTemplate>
</asp:Repeater>
[/Quote]
用表格吗<ItemTemplate>
<tr><td>
<%#Eval("字段") %>
</td><td>
<%#Eval("字段") %>
</td><td>
<%#Eval("字段") %>
</td></tr><br />
</ItemTemplate>
miao0099 2010-05-12
  • 打赏
  • 举报
回复
repeater 里面在套一个 repeater
天下在我心 2010-05-12
  • 打赏
  • 举报
回复
用CSS样式控制。一行3个,超过换行。
kiaoqq2010 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 a82344626 的回复:]
引用 7 楼 a82344626 的回复:
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%#Eval("字段") %> | <%#Eval("字段") %> | <%#Eval("字段") %>
<br />
</ItemTemplate>
</asp:Repeater>

呵呵!
刚刚测试了一下这样不……
[/Quote]
这个都不用测试,肯定不行的。读出来的数据都一样。
加载更多回复(10)

62,074

社区成员

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

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

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

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