using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page  

    SqlConnection sqlconn; 
    string sqlstr = "data source=localhost;database=shop;Uid=sa;Pwd=admin"; 
    public void Page_Load(Object src, EventArgs e) 
    { 
        this.bind(); 
    } 
    public void bind() 
    { 
        int curpage = Convert.ToInt32(this.Label1.Text); 
        PagedDataSource ps = new PagedDataSource(); 
        sqlconn = new SqlConnection(sqlstr); 
        sqlconn.Open(); 
        string sql = "select top 5 * from book"; 
        SqlDataAdapter MyAdapter = new SqlDataAdapter(sql, sqlstr); 
        DataSet ds = new DataSet(); 
        MyAdapter.Fill(ds, "book"); 
        ps.DataSource = ds.Tables["book"].DefaultView; 
        ps.AllowPaging = true; //是否可以分页 
        ps.PageSize = 2; //显示的数量 
        ps.CurrentPageIndex = curpage - 1; //取得当前页的页码 
        this.LinkButton1.Enabled = true; 
        this.LinkButton2.Enabled = true; 
        this.LinkButton3.Enabled = true; 
        this.LinkButton4.Enabled = true; 
        if (curpage == 1) 
        { 
            this.LinkButton1.Enabled = false;//不显示第一页按钮 
            this.LinkButton2.Enabled = false;//不显示上一页按钮 
        } 
        if (curpage == ps.PageCount) 
        { 
            this.LinkButton3.Enabled = false;//不显示下一页 
            this.LinkButton4.Enabled = false;//不显示最后一页 
        } 
        this.Label2.Text = Convert.ToString(ps.PageCount); 
        Repeater1.DataSource = ps; 
        Repeater1.DataBind(); 
        sqlconn.Close(); 
    } 
    protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
        this.Label1.Text = "1"; 
        this.bind(); 
    } 
    protected void LinkButton2_Click(object sender, EventArgs e) 
    { 
        this.Label1.Text = Convert.ToString(Convert.ToInt32(this.Label1.Text) - 1); 
        this.bind(); 
    } 
    protected void LinkButton3_Click(object sender, EventArgs e) 
    { 
        this.Label1.Text = Convert.ToString(Convert.ToInt32(this.Label1.Text) + 1); 
        this.bind(); 
    } 
    protected void LinkButton4_Click(object sender, EventArgs e) 
    { 
        this.Label1.Text = this.Label2.Text; 
        this.bind(); 
    } 

这是我的源代码,运行时老是出错 

解决方案 »

  1.   

     当你 点击 下一页的时候, 执行 Page_Load然后 
     this.Label1.Text = Convert.ToString(Convert.ToInt32(this.Label1.Text) - 1); 
            this.bind();  
    当然会报错 了 加上 if(!Page.ispostback)
    {
    }
      

  2.   

    我做的是Repeater控件的分页, 
    运行到int curpage = Convert.ToInt32(this.Label1.Text); 这就出错,错误:输入的字符串的格式不正确
      

  3.   

    用 PagedDataSource的IsFirstPage ,IsLastPage 来判断是不是在第一页及最后一页
      

  4.   

    this.LinkButton1.Enabled = false;//不显示第一页按钮  不进判断语句体  
      

  5.   

    我觉得用控件本身的分页是方便.但是效率不好.还是用 select top 页数 字段.where...来控制分页.这样数据显示控件只对数据进行显示就好了..如果想用这种方法,可以联系我我给你做个例子