【发布时间】:2012-05-10 08:11:46
【问题描述】:
我有一个 DataGridView 和几个 DataGridViewComboBoxColumn,其中实际值与 ID 相关联,但 DisplayMember 是查找表中的字符串对应项。我试图做到这一点,所以当我按该列排序时,排序是基于DisplayMember,而不是ValueMember。我知道this question 已经解决了这个问题,但答案不够深入,我也不明白。
到目前为止我已经尝试过什么
- 绑定到
SortCompare事件,但发现它没有在数据绑定列上触发。 - 在
ColumnHeaderMouseClick事件上手动排序,但DataGridViewRowCollection中的行是只读的,我无法以编程方式在数据绑定集合中插入行(在交换时)。 - 创建一个隐藏的
DataGridViewTextBoxColumn,其中单元格自动设置为原始列的DisplayMember,然后尝试对该列进行排序。但是,数据绑定集合无法根据无限制列进行排序。
编辑:进一步澄清:我正在尝试根据组合框的DisplayMember 对整个DataGridView 进行排序,而不是对组合框本身进行排序。
如何根据数据绑定DataGridViewComboBoxColumn 的DisplayMember 对DataGridView 进行排序?
【问题讨论】:
-
查询表本身的时候可以排序吗?喜欢让 sql 做你的工作吗?
-
也许吧?我知道我必须使用的 SQL 语句,但我不确定如何直接在 DataGridView 上调用 SQL。
-
你没有将你的 dgv 与数据表绑定吗?在那种情况下,您如何填充数据表?我猜你是从底层数据库获取值,不是吗?
-
如果我说得不清楚,我很抱歉。是的,DataGridView 绑定到数据表,然后组合框使用第一个 ID 绑定到查找表。但我已经自动设置了,我没有以编程方式绑定它们。
-
哦,我错过了您正在寻找组合框排序而不是 gdv 行的观点。在那种情况下,您如何获得查找表?是不是不能对查找表进行排序?
标签: c# .net winforms sorting datagridview