在GridView里面,怎样既实现排序,又实现分页的功能呢?

假设第一页排序到第十条,我再点击了下一页之后,排序还是从1开始啊!我想从十一开始向下排序,怎么办啊?

告诉你一个简单一点的办法,直接在gridview的RowDataBound事件中判断当前页,
下面是代码:自己看看
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (GridView1.PageIndex == 0)//如果是地一页排序从1开始
{
if (e.Row.RowIndex != -1)
{
int id = e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
}
}
else //否则用当前页乘每页条数,比如第二页索引为1每页条数为5用当前页乘每页条数加1,那么第二页便从6开始了。
{
if(e.Row.RowIndex!=-1)
{
int id = (GridView1.PageIndex *每页条数) + e.Row.RowIndex + 1;
}
}
}
希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-03
GRIDVIEW里面自带分页功能,排序用在SQL语句中 用order by
第2个回答  2011-04-03
既要排序,又想分页的话,两个方案:1,用BindingNavigator控件把GridView换掉,你试一下就知道了,很简单的,但不提倡;2,在绑定数据源的时候,可以分批检索数据,例如:在Sql语句中用order by 实现每一次的排序功能;然后用DataAdapter中的Fill方法将1-10的数据填充到DataSet中,再将DataSet绑定到数据源即可;当点击下一页的时候,再用Fill方法将11-20的数据填充到DataSet中,再重新绑定数据源就over了。(推荐用第二种方法)