日期:2014-05-18  浏览次数:20474 次

关于Repeater 的问题
原先的绑定方法是
HTML code

<ItemTemplate>
<tr>                    
<td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</tr>                                
</ItemTemplate>



一共12条记录,也就是有12行1列
现在想改成六行2列,数据源还是原来的DataTable

这样是不行的
HTML code

<tr> 
    <td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
    <td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</tr>


应该怎么改

------解决方案--------------------
.. 你可以简单的用交替项模板来实现,但这样就必须确保数据是偶数行以保证 <tr> 标签封闭。。
HTML code

<ItemTemplate>
<tr> 
    <td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</ItemTemplate>
<AlternatingItemTemplate>
    <td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</tr>
</AlternatingItemTemplate>

------解决方案--------------------
楼上说的对,这样只算一条记录

试试DataList,DataList可以设置列
如果一定要使用Repeater,可以考虑使用两个模板<ItemTemplate>,<speratorItemTemplate>
如:(只有输出记录在偶数条的情况下有效,否则html可能无法正常显示)
<ItemTemplate>
<tr>
<td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</ItemTemplate>
<SeparatorItemTemplate>
<td><a target=_blank href='news/html/<%#Eval("html") %>'><%# Eval("bt") %></a></td>
</tr>
</SeparatorItemTemplateItemTemplate>


------解决方案--------------------
试了下最简单的例子:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div style="float:left;width:49%;"><%# Eval("BoardTitle") %></div>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:FDBConnectionString %>"
SelectCommand="SELECT [BoardID], [BoardTitle] FROM [Board]"></asp:SqlDataSource>