日期:2014-05-17  浏览次数:20423 次

SqlDataSource更改SelectCommand后,重新绑定GridView无法排序
本帖最后由 gunziyang 于 2013-04-13 17:00:04 编辑
现有一个student表,有姓名,性别,身高,体重列
在aspx页面中为SqlDataSource1写了SelectCommand = "select * from router", GridView1的DataSourceID="SqlDataSource1"

GridView1各列用BoundField生成,在aspx页为身高和体重列写了SortExpression,在页面首次加载的时候,点击列标题,GridView的身高和体重列都可以排序。

然后在页面上有下拉框,可以对性别进行筛选,即动态更改SqlDataSource1.SelectCommand = "select * from student where sex = ?",然后再重新绑定GridView1,此时GridView1能够正确的显示只有男生或只有女生的结果,但是如果此时再点击身高体重列的列标题,则会显示select * from student的排序结果。我想要的效果是对已选出来的男生或女生排序。

我猜想是在点击排序按钮的时候,又调用了页面第一次加载的信息,而没有保存住已经搜索的状态。

请问为什么会出现全部的排序结果,如何才能在只显示男生或女生的时候,继续对身高体重列进行排序?

谢谢各位了
GridView SqlDataSource

------解决方案--------------------
pageload里面
if(!this.IsPostBack)
{
SelectCommand = "select * from router", 
}