我在查询的时候是调用的分页函数,但当前页面为第二页时点查询,如果查的只有一二项,或第二次查询比第一次查询结果比第一次少时,始终停留在第二页!下面是分页函数:
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());
}
}