用PagedDataSource来分页,出现的问题...
索引 104 不是为负数,就是大于行数。。
这里是因为我在url上改了页码,比本来的页大了,所以就出错了
到底应该怎么在加载页面的时候判断requset[ "ipage "]大于总页数来提示错误信息呢?
我分页是用PagedDataSource的
if (!Page.IsPostBack)
{
string sql = "select * from jw_sub order by jw_subid ";
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, con.Conn);
da.Fill(ds);
GridView1.DataSource = TBBind(ds);
GridView1.DataBind();
con.Close();
}
其实TBBIND是分页的方法,我就不列出来了..
太烦了。现在输入页码一打就出现索引大于当前索引..
用批量删除的时候,批量删除最后一页就会出错
求高人指点...
------解决方案--------------------针对你说的异常,有几个意思:
1. 在asp.net2.0中,应该不再使用DataSource属性,应该使用DataSourceID属性。
2. 如果一定要使用DataSource属性,应该在数据控件的DataBinding事件中进行预处理。对于你的程序,例如在页数大于最大页数的时候,应该设置为最大页数。
“到底应该怎么在加载页面的时候判断.....大于总页数来提示错误信息呢?”不知道你问什么。原本在异常时就会提示错误信息,你说的似乎asp.net不给你报告异常似的,你说的话不太合逻辑。
------解决方案--------------------try
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, con.Conn);
da.Fill(ds);
GridView1.DataSource = TBBind(ds);
GridView1.DataBind();
}
catch
{
Response.Redirect( " "+Request.Path+ "?iPage= "+(Convert.ToInt32(Request.QueryString[ "iPage "])-1)+ " ");
}
加在PAGELOAD里面。