繁体   English   中英

DataGridViews排序VB.Net

[英]DataGridViews Sorting VB.Net

所以我有一个我似乎无法克服的问题。 我将排序应用于我的Datagrid视图,如下所示。 (我可以在CoulmunHeaderMouseClick事件中手动执行此操作,或者允许它自动执行,但为清楚起见,我已包含了手动步骤)

DataGridView1.Sort(DataGridView1.Columns(_sortedColumnIndex),
_sortedColumnDirection)

现在出现了问题。将行编辑/添加到DGV后,该行将自动排序。 我希望禁用排序,并且不要使其“快速”进入其排序位置。

有没有一种方法可以禁用CellEndEdit事件中列的排序,以便仅在单击列标题时才应用排序。

示例(在第2列上应用ASC排序)

col1 | col2

一个| 1个

b | 2

c | 3 <<<编辑列(将值更改为1)

更改后自动排序的结果

col1 | col2

一个| 1个

c | 1个

b | 2

编辑单元格后的所需结果

col1 | col2

一个| 1个

b | 2

c | 1个

不能将已排序的列更改为col1。

我只是测试了一下,它基本上可以工作。

Private Sub DataGridView1_Sorted(sender As Object, e As EventArgs) Handles DataGridView1.Sorted
    Dim currentTable = DirectCast(DataGridView1.DataSource, DataTable)
    Dim newTable = currentTable.DefaultView.ToTable()

    DataGridView1.DataSource = newTable
End Sub

但是,它确实有一些怪异之处,它们都与排序时当前单元格在新行中有关。 我将尝试对其进行完善,但我认为现在值得您或其他人将其用作更完整解决方案的基础。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM