Предотвращение автосортировки столбцов после редактирования привязанного DataGridView - PullRequest
2 голосов
/ 26 июня 2009

У меня есть DataGridView, у которого есть DataTable, поскольку он является источником данных. Всякий раз, когда я сортирую столбец и затем редактирую ячейку, после редактирования столбца столбец автоматически сортируется, поэтому недавно отредактированная ячейка больше не находится в видимой области. Есть ли способ предотвратить автоматическую сортировку и выполнять сортировку только при нажатии на столбцы?

Большое спасибо заранее.

Дарын

Ответы [ 2 ]

1 голос
/ 27 июля 2009

Не думаю, что есть способ предотвратить сортировку, но вы можете сохранить значения строки, столбца и сортировки сетки перед обновлением, а затем восстановить их после обновления.

Вот код, который я использую:

Friend Sub refreshGrid()
    Dim row As Integer
    Dim col As Integer
    Dim gridCol As Integer
    Dim gridColsToHide As Integer
    Dim rowCountOrig As Integer
    Dim rowCountNew As Integer

    row = dgvReadOnly.CurrentRow.Index
    col = dgvReadOnly.CurrentCell.ColumnIndex
        Dim sortVal As String

        sortVal = _setSource.DefaultView.Sort
        rowCountOrig = _setSource.Rows.Count
        _setSource = _displaySet.displaySetTable
        rowCountNew = _setSource.Rows.Count
        setRowFilter()
        _setSource.DefaultView.Sort = sortVal
        If (rowCountNew > rowCountOrig) Then  ' added new row
            row = dgvReadOnly.RowCount - 1  ' new row is at bottom of grid, but skip * row
        End If
    dgvReadOnly.DataSource = Nothing
    dgvReadOnly.DataSource = _setSource
    If row >= dgvReadOnly.RowCount - 1 Then   ' after delete
        row = dgvReadOnly.RowCount - 2
    End If
    If row >= 0 Then        ' if didn't delete all rows matching filter
        dgvReadOnly.CurrentCell = dgvReadOnly(col, row)
    End If
End Sub
0 голосов
/ 30 июня 2009

Я не знаю, работает ли это, но звучит так, как может.

Попробуйте установить SortMode для каждого столбца (DataGridView.Columns (1) .SortMode) в значение Programmatic или NotSortable, когда ячейка выбрана для редактирования, а затем установите его в автоматический режим после завершения редактирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...