VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 984|回复: 7

关于GridView排序的一个问题

[复制链接]

3

主题

17

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-2-1 22:00:02 | 显示全部楼层 |阅读模式
看下面的数据按总分来排列,但总分中有相同的,所以排名就要相同

排名  教师名   总分
第1名  张三     85
第2名  李四     69
第3名  王五     69
第4名  吴六     69
第5名  刘七     68

如何才能把数据变成:
排名  教师名   总分
第1名  张三     85
第2名  李四     69
第2名  王五     69
第2名  吴六     69
第3名  刘七     68
回复

使用道具 举报

0

主题

43

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-3-17 20:00:01 | 显示全部楼层
总分相同的记录,排序有要求吗,应该是随便的吧,只是“排名”这列的值是一样吧
回复

使用道具 举报

3

主题

17

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-3-17 22:30:01 | 显示全部楼层
是的
回复

使用道具 举报

0

主题

43

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-3-18 15:30:01 | 显示全部楼层
设置ds.defaultview.sort="总分" & "desc"

OnRowDataBound过程中,把总分放到一viewstate里,
产生下一行时,将总分与该viewstate比较,如果相同,排名与rows(e.rowindex-1)的值相同,
如果不相同,排名加1,最后将改行的总分覆盖掉viewstate
回复

使用道具 举报

3

主题

17

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-3-19 21:00:01 | 显示全部楼层
能说得清楚一点吗
回复

使用道具 举报

0

主题

43

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-3-22 19:30:01 | 显示全部楼层
Page_Load:
If Not IsPostBack Then
  viewstate("total")=""       '初始化总分
  viewstate("piac")=0         '初始化排名
end if


rowdatabound:
If e.Row.RowType = DataControlRowType.DataRow then
   if e.Row.Cells(2).Text = viewstate("total") then
      e.row.Cells(0).text = viewstate("piac")
   else
      viewstate("piac") = viewstate("piac") + 1
      e.row.Cells(0).text = viewstate("piac")
   end if
   viewstate("total") = e.Row.Cells(2).Text
end if

上面的代码不一定能编译成功,能理解思路就好
回复

使用道具 举报

3

主题

14

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-26 02:15:01 | 显示全部楼层
好象还是按总分排的续吧`` 他那里有三个总分是相同的``
好象排出来应该相同`
回复

使用道具 举报

3

主题

17

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-8-13 12:00:01 | 显示全部楼层
还是编译有错啊.......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表