Repeater控件实现分页

  前一篇文章我已经写了一个关于Repeater控件绑定数据,今天是基于这基础之上的,也就是按昨天的例子补充一点内容! 唉!怎么感觉自己天天在学控件,还是在原来的地方呢?没努力啊!!!!!! 还有啊,太笨了,这么慢我是一天天在浪费生命啊! 

  这是一个已经绑定好的Repeater,:

_------------------------------------------------------------------------------------------------------------------

还不知道这样使用Repeater绑定的朋友可以看我上一篇文章,^_^呵呵!我也是刚会的哦!

  下面我就要在页面上加一些控件!

 

现在想想怎么实现分页呢>?Repeater控件是不能分页的,必须调用一个类. PagedDataSource,它位于using System.Web.UI.WebControls;是datalist封装的,反正它们是兄弟吗?(我是这么认为的),就可以调用它了,实现与兄弟同样的功能.

这是代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Label1.Text = "1";   //第一次加载的时候是不是!啊
            dataBindToRepeater();//
要进行绑定吧!就该都知道吧!我这么笨都知道了,何况聪明的你呢?


          
        }
    }
    private void dataBindToRepeater()
    {
        int curPage = Convert.ToInt32 (Label1.Text);
        ds = data.GetDataSet("select * from authors", "authors");//
这是类中的一个静态方法,下面我会给出,静态方法不需要实例化,直接调用,好方便啊!

        PagedDataSource ps = new PagedDataSource();
        ps.DataSource = ds.Tables["authors"].DefaultView;
        ps.AllowPaging = true;//允话分页
        ps.PageSize = 5;


        ps.CurrentPageIndex = curPage - 1;//CurrentPageIndex 是当前页,,而curPage 是显示页,当前面是从略开始的,所以记得要减一!!
        prebtn.Enabled = true;//首先设置都能用,下面接着判断
        nextbtn.Enabled = true;
        if (curPage == 1)//
当为第一页的时候,是不是这个pretn要不能用,同理下面

            prebtn.Enabled = false;
        if (curPage  == ps.PageCount)
            nextbtn.Enabled = false;
        Label2.Text = Convert.ToString(ps.PageCount );//总页数
        Repeater1.DataSource = ps;
        Repeater1.DataBind();
    }


    protected void prebtn_Click(object sender, EventArgs e)//当单击首页的时候
    {
        Label1.Text = Convert .ToString ((Convert.ToInt32(Label1.Text) - 1));//上一页,所以小孩都知道 4的前面是3
        dataBindToRepeater();
    }
    protected void nextbtn_Click(object sender, EventArgs e)
    {
        Label1.Text = Convert .ToString ((Convert.ToInt32(Label1.Text) + 1));
        dataBindToRepeater();

    }
    protected void Button3_Click(object sender, EventArgs e)//末页
    {
        Label1.Text = Label2.Text;//
当前页就等于总共页

        nextbtn.Enabled  = false;
        dataBindToRepeater();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "1";
        prebtn.Enabled = false;
        dataBindToRepeater();
    }
}

类中的代码

 public static DataSet GetDataSet(string sql,string tablename)
    {
        SqlConnection con = new SqlConnection("Data Source=PKO5GJ0CYL9DIS9;Initial Catalog=pubs;Integrated Security=True");
      con.Open();
      SqlCommand cmd = new SqlCommand(sql, con);
      SqlDataAdapter adpt = new SqlDataAdapter(cmd);
      DataSet ds = new DataSet();
      adpt.Fill(ds,tablename);
      con.Close();
      con.Dispose();
      return ds;

    }前一篇有介绍

运行如下:

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值