我现在用repeater来显示数据列表,有这样的一个需求,我设置显示条数为10条,可实际上提取出来的数据只有5条,如果正常情况下,那绑定到该repeater上也只能显示五条,我现在需要,仍然显示10条,只不过下面五条是没有数据的,只是占着位置而已。这个实现有没有好的方法,我现在是想到,在数据源里去扩充一下。不过这个看起来不爽。
|
在绑定的时候加吧,具体加什么自己拿主意了 自已做一个Repeater就得了嘛, 写在一个类工程里面~~ using System; using System.Collections.Generic; using System.Text; using System.Web.UI.WebControls; namespace Test { public class MyRepeater : Repeater { private int displayPageSize; public int DisplayPageSize { get { return displayPageSize; } set { displayPageSize = value; } } int currentCount = 0; protected override void OnItemDataBound(RepeaterItemEventArgs e) { base.OnItemDataBound(e); if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { currentCount++; if (currentCount > displayPageSize) { e.Item.Controls.Clear(); } } } } } 页面上用的时候申请一下 <%@ Register Assembly ="Test" Namespace="Test" TagPrefix="uc1" %> <uc1:MyRepeater runat="server" id="rpMyRepeater" DisplayPageSize="3"> <ItemTemplate> <%# Eval("Name") %> || <%# Eval("Age") %> <br /> <br /> </ItemTemplate> </uc1:MyRepeater> 使用的时候只需要设定DisplayPageSize则只显示指定数量的记录. 学习 学习 |
|
3个月前 沙加 : 如果需要显示特定的占位符则在 e.Item.Controls.Clear(); 后面加入语句,例如: Literal holder = new Literal(); holder.Text = "<br />"; e.Item.Controls.Add(holder); |