[已解决问题] 一个关于repeater的小问题
提问时间: 2008-01-29 09:54
浏览:394 次

我现在用repeater来显示数据列表,有这样的一个需求,我设置显示条数为10条,可实际上提取出来的数据只有5条,如果正常情况下,那绑定到该repeater上也只能显示五条,我现在需要,仍然显示10条,只不过下面五条是没有数据的,只是占着位置而已。这个实现有没有好的方法,我现在是想到,在数据源里去扩充一下。不过这个看起来不爽。


提问者:李.net - 菜鸟二级
最佳答案
控制显示用?css控制ItemTemplate的高度就行了
2008/1/29 15:53:59 回答者:chy710
其它回答(4)
在绑定的时候加吧,具体加什么自己拿主意了
3个月前   回答者:Wilensky - 小虾三级
自已做一个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个月前   回答者:沙加 - 老鸟四级
学习
3个月前   回答者:叶子绿了 - 初学一级
学习
3个月前   回答者:侯垒 - 小虾三级
评论
3个月前   沙加 :
如果需要显示特定的占位符则在 e.Item.Controls.Clear(); 后面加入语句,例如:

Literal holder = new Literal();
holder.Text = "<br />";
 e.Item.Controls.Add(holder);
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除