当前位置:编程学习 > C#/ASP.NET >>

自定义分页控件对Repeater进行分页数据显示不了

我今天写了个自定义的控件用于实现分页功能,但是在点击下一页的时候数据没了。
宿主页面代码:
        private static ICanShuData o_canshudata;
        private static DataTable dt;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //存放当前页索引
                Session["Current"] = "1";
                int Count;
                //注册分页处理事件
                Paging.PageChanged = new Paging.ChangPageEventhandler(Paging_ChangPage);
                o_canshudata = DALFactory.CreateCanShuDataInstance();
                int Current = Convert.ToInt32(Session["Current"].ToString());
                //绑定第一页的数据
                dt = o_canshudata.GetDanYanData(2, Current, out Count);
                repDanYuan.DataSource = dt;
                repDanYuan.DataBind();
                //存放总页数
                Session["Count"] = Count.ToString();

                if (Count <= 0)
                {
                    return;
                }
            }
        }
        /// <summary>
        /// 分页处理事件
        /// </summary>
        void Paging_ChangPage()
        {
            int Current = Convert.ToInt32(Session["Current"].ToString());
            DataPaging(2, Current);
        }
        private void DataPaging(int pageSize, int pageIndex)
        {
            int count;
            dt = o_canshudata.GetDanYanData(pageSize, pageIndex, out count);
            repDanYuan.DataSource = dt;
            repDanYuan.DataBind();
        }
用户控件代码:
        private static ICanShuData o_canshudata;
        private static DataTable dt;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //存放当前页索引
                Session["Current"] = "1";
                int Count;
                //注册分页处理事件
                Paging.PageChanged = new Paging.ChangPageEventhandler(Paging_ChangPage);
                o_canshudata = DALFactory.CreateCanShuDataInstance();
                int Current = Convert.ToInt32(Session["Current"].ToString());
                //绑定第一页的数据
                dt = o_canshudata.GetDanYanData(2, Current, out Count);
                repDanYuan.DataSource = dt;
                repDanYuan.DataBind();
                //存放总页数
                Session["Count"] = Count.ToString();

                if (Count <= 0)
                {
                    return;
                }
            }
        }
        /// <summary>
        /// 分页处理事件
        /// </summary>
        void Paging_ChangPage()
        {
            int Current = Convert.ToInt32(Session["Current"].ToString());
            DataPaging(2, Current);
        }
        private void DataPaging(int pageSize, int pageIndex)
        {
            int count;
            dt = o_canshudata.GetDanYanData(pageSize, pageIndex, out count);
            repDanYuan.DataSource = dt;
            repDanYuan.DataBind();
        }

跪求大神指教!!!!
点击下一页的按钮后,数据可以取出来,也绑定到Repeater控件上了,但就是显示不出来 --------------------编程问答-------------------- 有没有人看啊,谁来看一下啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 来个人看看吧 --------------------编程问答--------------------
太乱了 眼花 楼主抱歉啊  --------------------编程问答-------------------- 楼主写了太复杂了吧,使用自定义分页控件多简单啊。给你看个事例,希望对你有帮助。
引用一个自定义控件
在页面上
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

 <webdiyer:AspNetPager ID="AspNetPager1" runat="server" width="100%" UrlPaging="True" CssClass="paginator" CurrentPageButtonClass="cpb" HorizontalAlign="center" PageSize="5" UrlPageIndexName="page" OnPageChanged="anp_PageChanged"></webdiyer:AspNetPager>
      
.cs部分代码:

  protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DoDataBind();
        }
    }
    //绑定数据
    public void DoDataBind()
    {
        string sql = " select * from stu";
        DataSet ds = new DataSet();
        using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["stuConnectionString"].ConnectionString))
        {
            cn.Open();
            SqlCommand cm = new SqlCommand(sql, cn);
            SqlDataAdapter da = new SqlDataAdapter(cm);
            da.Fill(ds);
        }
        if (ds != null)
        {
            PagedDataSource pds = new PagedDataSource();
            AspNetPager1.RecordCount = ds.Tables[0].Rows.Count;//数据的总行数
            pds.DataSource = ds.Tables[0].DefaultView;//pds 管理数据
            pds.AllowPaging = true;//允许分页
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//当前的页码
            pds.PageSize = AspNetPager1.PageSize;
            Repeater1.DataSource = pds;
            Repeater1.DataBind();
        }
    }
    protected void anp_PageChanged(object src, EventArgs e)
    {
        DoDataBind();
    }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,