goldcoast

博客园 首页 新随笔 联系 订阅 管理
以前都是自己写代码分页的,近来我用了这个分页控件,但是,设置以后,分页效果总是不理想(不见首条记录和最后一条记录,还有记录同时在多个分页中出现)。
Bind.cs

public DataTable BindBlog(int currentPageIndex,int pageSize)
        
{
            database database
=new database();
            database.Open();
            
int startIndex;
            startIndex
=pageSize*(currentPageIndex-1);

            
string strSql="select * from blog where [parentID]=-1 and [postType]=-1 order by dateAdd desc";
            DataSet dtSet
=new DataSet();
            DataTable dt
=null;
            
//database database=new database();
            try
            
{
                
//SqlCommand cmd=new SqlCommand(strSql,database.conn);
                SqlDataAdapter daAdapter=new SqlDataAdapter(strSql,database.conn);
                daAdapter.Fill(dtSet,currentPageIndex,pageSize,
"Blog");
                dt
=dtSet.Tables["Blog"];
            }

            
catch(Exception ex)
            
{
                database.ErrorMessage
=ex.Message;
            }

            
return dt;
            
        }


Pager.aspx.cn

void BindList()
        
{
            Blog blog
=new Blog();
            
int startIndex=Pager.PageSize*(Pager.CurrentPageIndex-1);
            DataTable dt
=blog.BindBlog(Pager.CurrentPageIndex,Pager.PageSize);
            myRepeater.DataSource
=dt.DefaultView;
            myRepeater.DataBind();
        }


我就纳闷,于是,试着不用分页,数据绑定是没问题的。换句话说,就是分页控件设置错误。于是,再检查,并没有发现问题,代码似乎没错。搞了老半天,问题仍未解决。最后终于找到了根源,是Pager属性搞错了,代码如下:

Bind.cs

public DataTable BindBlog(int startIndex,int pageSize)
        
{
            database database
=new database();
            database.Open();
            
//int startIndex;
            
//startIndex=pageSize*(currentPageIndex-1);

            
string strSql="select * from blog where [parentID]=-1 and [postType]=-1 order by dateAdd desc";
            DataSet dtSet
=new DataSet();
            DataTable dt
=null;
            
//database database=new database();
            try
            
{
                
//SqlCommand cmd=new SqlCommand(strSql,database.conn);
                SqlDataAdapter daAdapter=new SqlDataAdapter(strSql,database.conn);
                daAdapter.Fill(dtSet,startIndex,pageSize,
"Blog");
                dt
=dtSet.Tables["Blog"];
            }

            
catch(Exception ex)
            
{
                database.ErrorMessage
=ex.Message;
            }

            
return dt;
            
//database.Close();
        }


Pager.aspx.cn

void BindList()
        
{
            Blog blog
=new Blog();
            
int startIndex=Pager.PageSize*(Pager.CurrentPageIndex-1);
            DataTable dt
=blog.BindBlog(startIndex,Pager.PageSize);
            myRepeater.DataSource
=dt.DefaultView;
            myRepeater.DataBind();
        }

就是Pager的PageSize、CurrentPageIndex作的怪。
posted on 2005-04-04 09:31  Neter  阅读(3712)  评论(5)    收藏  举报