Repeater多行多列的问题解决!
近日在博客园上看到有朋友写的让Repeater实现多行多列的代码:
public int i = 0;
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 3 == 0)
{
e.Item.Controls.Add(new LiteralControl("</TR><TR>"));
}
i++;
}
但以上这种做法,是Repeater每显示3列变换一行的效果,但是有一缺点,就是当循环到最后一个数据不满3列时,程序也会执行 e.Item.Controls.Add(new LiteralControl("</TR><TR>"));,这样在网页上就会多一个</TR><TR>,影响了页面的显示效果,解决办法是,如果你是每页显示6个数据的话,那加个if即可
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 3 == 0)
{
if (i == 6) { }
else
{
e.Item.Controls.Add(new LiteralControl("</TR><TR>"));
}
}
i++;
}