VB.net排序列然后进行排序,但保留行位置

时间:2018-09-15 08:10:50

标签: c# vb.net sorting datagridview

我可以通过自动sortmode对datagridview列进行排序。但是我的问题是,当我将列设置为自动排序时,这意味着“状态”列始终处于排序模式,并且如果有任何数据更改,它将移动到以下任何排序模式

enter image description here

enter image description here

我不要这个。我只想先排序然后关闭,但保留行位置。我的意思是:

步骤1:当用户更改“状态”列的状态时,它不是排序数据

第2步:然后,当用户单击列标题时,它将对数据降序排序

步骤3:之后,当用户更改“状态”列的任何状态时,它不是排序而是在datagridview中保留行位置(这意味着状态已更改的行不会移到任何地方)

有没有正确的方法来实现这一目标?谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我的建议是:

  1. 如果网格尚未绑定到DataTable,请这样做。
  2. 在数据类型为DataTable的{​​{1}}中添加一列。
  3. 要么自己创建并绑定网格列,而不为该额外的列创建网格列,要么在绑定后隐藏该网格列。
  4. 根据需要对网格进行排序。
  5. 遍历Integer的{​​{1}},然后依次在多余的列中设置值。
  6. 将该额外列的名称分配给DefaultView的{​​{1}}属性。

就是这样。现在,数据将按照该列中的数字顺序进行排序,因此您可以在不影响顺序的情况下对其余数据进行任何更改。