首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 用Repeater绑定数据的时候,因为我是两行为Tabel中的一行,当绑定为单数的时候会出现一片灰白 如何办

2011-12-17 
|M| 用Repeater绑定数据的时候,因为我是两行为Tabel中的一行,当绑定为单数的时候会出现一片灰白 怎么办as

|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

热点排行