|M| 用Repeater绑定数据的时候,因为我是两行为Tabel中的一行,当绑定为单数的时候会出现一片灰白 怎么办
<asp:Repeater ID= "rpt_ParkType " runat= "server " OnItemDataBound= "rpt_ParkType_ItemDataBound "
OnItemCommand= "rpt_ParkType_ItemCommand ">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<tdcolspan= "2 ">
这里绑定类别
</td>
</tr>
<asp:Repeater ID= "rpt_ParkOfType " runat= "server ">
<ItemTemplate>
<tr>
<td width= "50% ">
这里绑定单数的数据
</td>
</ItemTemplate>
<AlternatingItemTemplate>
<td>
这里绑定双数的数据
</td>
</tr>
</AlternatingItemTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
上面是绑定的
当查询出来的数据为双数时没有问题,但当为单数的时候因为最后一行
只有
<tr>
</td> 这里绑定单数的数据 </td>
后面没有数据就直接
</table>
这时那里就会出现一格黑色。。。
这个要怎么办
谢谢
[解决办法]
最好使用DataList
[解决办法]
1. 子repeater用datalist. datalist本身具有这个功能.2. <FooterTemplate> 在这里可加判断. <%#用个函数判断当前repeater的datasouce的记录数,然后决定是否加个 <td> </td> </tr> %> </table> </FooterTemplate>
[解决办法]
</td> 要紧跟着前面的内容
[解决办法]
页面中对于子控件添加OnItemDataBound事件
<asp:Repeater ID= "rpt_ParkOfType " OnItemDataBound= "Pics_ItemDataBound " runat= "server ">
<ItemTemplate>
<td width= "50% ">
这里绑定单数的数据
</td>
</ItemTemplate>
<AlternatingItemTemplate>
<td>
这里绑定双数的数据
</td>
</AlternatingItemTemplate>
<HeaderTemplate>
<table width= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 ">
<tr>
</HeaderTemplate>
<FooterTemplate>
</TR>
</TABLE>
</FooterTemplate>
</asp:Repeater>
后台.cs中添加
int k=0;
/// <summary>
/// 控制 Repeater控件每行的显示
/// </summary>
/// <param name= "src "> </param>
/// <param name= "e "> </param>
public void Pics_ItemDataBound(object src,RepeaterItemEventArgs e)
{
//Response.Write(k+ " ");
if(k%2==0)
{
e.Item.Controls.Add(new LiteralControl( " </tr> <tr> "));
}
k++;
}
[解决办法]
up
[解决办法]
DataList
[解决办法]
cpp2017(慕白兄) ( ) 信誉:100 Blog 2007-03-22 10:42:57 得分: 0
子控件的
<FooterTemplate>
<%#ShowFolter(Container)%>
</FooterTemplate>
protected string ShowFolter(object o)
{
RepeaterItem item = (RepeaterItem)o;
DataView dv = (DataView)((Repeater)item.Parent).DataSource;
if (dv.Count % 2 != 0)
{
return " <TD> </TR> </Table> ";
}
else
return string.Empty;
}
------------------------------------------------
up
[解决办法]
子控件的
<FooterTemplate>
<%#ShowFolter(Container)%>
</FooterTemplate>
protected string ShowFolter(object o)
{
RepeaterItem item = (RepeaterItem)o;
DataView dv = (DataView)((Repeater)item.Parent).DataSource;
if (dv.Count % 2 != 0)
{
return " <TD> </TR> </Table> ";
}
else
return string.Empty;
}
-------------------------------------
up