您的位置:程序门 -> .net技术 -> asp.net



关于gridview排序的一个问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于gridview排序的一个问题[已结贴,结贴人:chiyustar]
发表于:2007-01-04 13:29:04 楼主
看下面的数据按总分来排列,但总分中有相同的,所以排名就要相同

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

如何才能把数据变成:
排名     教师名       总分  
第1名     张三           85  
第2名     李四           69  
第2名     王五           69  
第2名     吴六           69  
第3名     刘七           68  
发表于:2007-01-04 13:37:001楼 得分:0
总分相同的记录,排序有要求吗,应该是随便的吧,只是“排名”这列的值是一样吧
发表于:2007-01-04 13:38:442楼 得分:0
是的
发表于:2007-01-04 13:45:263楼 得分:15
设置ds.defaultview.sort= "总分 "   &   "desc "

onrowdatabound过程中,把总分放到一viewstate里,
产生下一行时,将总分与该viewstate比较,如果相同,排名与rows(e.rowindex-1)的值相同,
如果不相同,排名加1,最后将改行的总分覆盖掉viewstate
发表于:2007-01-04 13:57:364楼 得分:0
能说得清楚一点吗
发表于:2007-01-04 14:26:255楼 得分:0
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

上面的代码不一定能编译成功,能理解思路就好
发表于:2007-01-04 15:05:146楼 得分:5
好象还是按总分排的续吧``   他那里有三个总分是相同的``
好象排出来应该相同`
发表于:2007-01-17 20:38:077楼 得分:0
还是编译有错啊.......


快速检索

最新资讯
热门点击