高分求winform下的datagrid的排序问题

maksim_wei 2004-12-15 05:23:14
项目是一个告警管理程序,界面上用datagrid显示收到的告警消息
数据源为DataTable,有以下几列:
1、EventType,int类型,用于表示不同类型的告警
2、EventState,int类型,用于表示告警的处理情况(未处理,待处理....等)
3、EventTime,DateTime类型,表示告警发生的时间

首先按EventState排序,未处理的最上面,待处理的中间,已处理的最下面;
然后在EventState排序的基础上按EventType排序,现在的问题是EventType不是1、2、3、4这么有规律排的,而是我希望EventType为1的排在最上面,4其次、2再次、3最后(当然这只是举的一个例子,实际情况类似);
最后按EventTime排序,在前面排序的基础上按时间倒序排。

现在的难点就在EventState的排序并不是按顺序或倒序,而是人工指定的一个顺序,有点麻烦,请各位高手指点一条明路,先谢过了!分不够可另外开贴送,不是问题。
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
maksim_wei 2004-12-15
  • 打赏
  • 举报
回复
刚才在吃饭的时候也想到了jimh(jimmy) 同学的方法,呵呵,高兴呀,小二,结帐拉!
jimh 2004-12-15
  • 打赏
  • 举报
回复
你多设置两张表EventTypeSortOrder(EventType, SortOrder),EventStateSortOrder(EventState, SortOrder),或者直接添加两个字段到Event表(EventTypeSortOrder, EventStateOrder),
关键是查询时返回多两个排序字段,然后使用那两个新字段排序就ok了
nga96 2004-12-15
  • 打赏
  • 举报
回复
兄弟,终于看懂了你的意思,一句话难。
要不按一楼的说话,使用XML来实现吧
garry2000 2004-12-15
  • 打赏
  • 举报
回复
可能你设计的有问题,你再看一下吧
kqh0319 2004-12-15
  • 打赏
  • 举报
回复
up
maksim_wei 2004-12-15
  • 打赏
  • 举报
回复
这个问题真的很困难嘛?郁闷!
maksim_wei 2004-12-15
  • 打赏
  • 举报
回复
有过相关经验的兄弟们,进来帮帮忙呀!!我顶!
maksim_wei 2004-12-15
  • 打赏
  • 举报
回复
老兄,我现在有n多的列样式是基于这个datatable的,你这样做岂不是改变了datagrid的数据源?我的样式怎么办?还有,datagrid的点击事件也有许多是基于它的数据源,也就是这个datatable的,改这个还不如杀了我:(
tl0 2004-12-15
  • 打赏
  • 举报
回复
建立一个强类型的DataSet,然后将数据根据自定义的顺序添加到DataSet,通过XML方式排序。

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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