DisplayMember对DataGridView进行排序

问题描述:

我有一个绑定到DataTable的DataGridView。在这个表中有一些外键。然后,我使用CellFormatting事件从另一个数据库表中为每个外键获取相应的文本。DisplayMember对DataGridView进行排序

我想在用户单击标题时对DataGridView进行排序。自动排序工作但不正确,因为它是在ValueMember(ForeignKey ID)上排序,而不是在DisplayMember(文本)上排序。

我试过使用SortCompare事件,但后来我发现它不适用于使用DataSource属性的DataGridViews。

这怎么办?

谢谢

通过在初始语句中添加一个嵌套的select语句来解决这个问题。

从这:

SELECT id, column1, column2, column3_fk 
FROM db_table 

要这样:

SELECT id, column1, column2, column3_fk, 
     (
     SELECT DESC FROM db_table2 
     WHERE id = db_table1.column3_fk 
     ) AS fk_description 
FROM db_table1