SqlDataSource更改SelectCommand后,重新绑定GridView无法排序

gunziyang 2013-04-13 04:50:49
现有一个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的排序结果。我想要的效果是对已选出来的男生或女生排序。

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

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

谢谢各位了
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gunziyang 2013-04-16
  • 打赏
  • 举报
回复
引用 2 楼 5653325 的回复:
pageload里面 if(!this.IsPostBack) { SelectCommand = "select * from router", }
想通了,应该配合查询的条件,在Page_Load事件添加如下: SelectCommand = "select * from router where" + 查询条件 注意不需要if语句
踏平扶桑 2013-04-15
  • 打赏
  • 举报
回复
pageload里面 if(!this.IsPostBack) { SelectCommand = "select * from router", }
gunziyang 2013-04-15
  • 打赏
  • 举报
回复
会不会是要在GridView的sorting事件中,或者是SqlDataSource里的SelectParameters或FilterParameters参数中写什么东西

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧