日期:2014-05-18  浏览次数:20792 次

Repeater分页问题~在线等!
我在查询的时候是调用的分页函数,但当前页面为第二页时点查询,如果查的只有一二项,或第二次查询比第一次查询结果比第一次少时,始终停留在第二页!下面是分页函数:
private   void   RepeaterDataBind(string   strsql)
{
string   strconn   =   ConfigurationSettings.AppSettings[ "dsn "];
SqlConnection   conn   =   new   SqlConnection(strconn);
SqlDataAdapter   da   =   new   SqlDataAdapter(strsql,conn);
PagedDataSource   objPage=new   PagedDataSource();
//创建DataSet对象
DataSet   ds   =   new   DataSet();
try
{
//填充数据集
da.Fill(ds, "materiel ");
//设置数据源
objPage.DataSource   =   ds.Tables[ "materiel "].DefaultView;
//允许分页
objPage.AllowPaging   =   true;
//设置每页显示的项数
objPage.PageSize   =   10;
//定义变量用来保存当前页索引
int   CurPage;
//判断是否具有页面跳转的请求
if   (Request.QueryString[ "Page "]   !=   null)
CurPage=Convert.ToInt32(Request.QueryString[ "Page "]);
else
CurPage=1;
//设置当前页的索引
objPage.CurrentPageIndex   =   CurPage-1;
//显示状态信息
lblCurPage.Text   =   "当前页:第 "   +   CurPage.ToString()+ "页 ";
//如果当前页面不是首页
if   (!objPage.IsFirstPage)
//定义 "上一页 "超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath   +   "?Page= "   +   Convert.ToString(CurPage-1);
//如果当前页面不是最后一页
if   (!objPage.IsLastPage)
//定义 "下一页 "超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+   "?Page= "   +   Convert.ToString(CurPage+1);

//进行数据绑定
ReMateriel.DataSource   =   objPage;
ReMateriel.DataBind();
}
catch(Exception   error)
{
Response.Write(error.ToString());
}
}

------解决方案--------------------
这个代码最开始也学过,但现在一直用aspnetpager免费控件分页