我本人是转贴的,但我已经测试通过:
repeater datalist 换行分隔符 编程实现
datalist的实现
protected int i = 0;
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
i++;
if (i / 10 == 1)
{
e.Item.Controls.Add(new System.Web.UI.LiteralControl("</td></tr><tr width='100%'><td colspan='10' style='background-image:url(images/ClassSeparator.gif); background-repeat:repeat-x; height:3px; 100%'></td></tr><tr><td>"));
}
if (i == 10)
{
i = 0;
}
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
i++;
if (i / 10 == 1)
{
e.Item.Controls.Add(new System.Web.UI.LiteralControl("</td></tr><tr width='100%'><td colspan='10' style='background-image:url(images/ClassSeparator.gif); background-repeat:repeat-x; height:3px; 100%'></td></tr><tr><td>"));
}
if (i == 10)
{
i = 0;
}
}
注意:RepeatDirection="Horizontal"
repeater的实现
protected int i = 0;
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 18 == 0)
{
e.Item.Controls.Add(new System.Web.UI.LiteralControl("</tr><tr>"));
}
i++;
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 18 == 0)
{
e.Item.Controls.Add(new System.Web.UI.LiteralControl("</tr><tr>"));
}
i++;
}
注:LiteralControl 表示 HTML 元素、文本和 ASP.NET 页中不需要在服务器上处理的任何其他字符串。
例如我们要创建控件模板的时候需要向父控件添加一些文本,但是静态文本不能够直接添加,这时候就可以创建类似 Literal 控件或 LiteralControl 控件的控件,设置它们的 Text 属性,然后将这些控件添加到父集合