我设了每页显示2条记录,结果点击第1页,显示2条记录、点击第2页,显示4条,点击第3页,显示6条……
不知大家有没有见过这样的情况?
我检查了绑定的代码和存储过程,看上去都很正常的样子,不知道问题出在哪里

解决方案 »

  1.   

    在每次用控件(repeater等)显示完后用 控件ID.clear()方法清空该控件的Items.
      

  2.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    if(!Page.IsPostBack)
    {
    BindData2();
    cmd=new SqlCommand("Get_Notes3",conn);
    cmd.Parameters.Add("@pageindex",1);
    cmd.Parameters.Add("@pagesize",1);
    cmd.Parameters.Add("@docount",true);
    conn.Open();
    pager.RecordCount=(int)cmd.ExecuteScalar();
    conn.Close();
    BindData();
    }
    }             void BindData()
                 {
                 cmd=new SqlCommand("Get_Notes3",conn);
                 cmd.CommandType=CommandType.StoredProcedure;
    cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);
             cmd.Parameters.Add("@pagesize",pager.PageSize);
                 cmd.Parameters.Add("@docount",false);
                 conn.Open();
                 guestbook.DataSource=cmd.ExecuteReader();
                 guestbook.DataBind();
                 conn.Close();
                 conn.Dispose();
    pager.CustomInfoText="留言总数:<font color=\"blue\"><b>"+pager.RecordCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+pager.PageCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>";
                 }private void pager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
    {
    pager.CurrentPageIndex=e.NewPageIndex;
    BindData();
    }存储过程:
    CREATE procedure Get_Notes3
    (@pagesize int,
    @pageindex int,
    @docount bit)
    as
    set nocount on
    if(@docount=1)
    select count(NewsID) from tb_guestbook
    else
    begin
    declare @indextable table(id int identity(1,1),nid int)
    declare @PageLowerBound int
    declare @PageUpperBound int
    set @PageLowerBound=(@pageindex-1)*@pagesize
    set @PageUpperBound=@PageLowerBound+@pagesize
    set rowcount @PageUpperBound
    insert into @indextable(nid) select NewsID from tb_guestbook order by NotesID desc
    select O.* from tb_guestbook O,@indextable t where O.NewsID=t.nid
    and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
    end
    set nocount offGO