Telerik RadGridView 仅在列 header 上排序单击

Telerik RadGridView sort only on column header click

我对一列进行排序。然后编辑该列中的一个值 - 该行会自动重新定位。

如果我在编辑之前禁用该列(甚至整个网格)的排序并在值更改时重新打开它 CellValueChanged 事件,重新排序。

如何使网格仅在单击列时才排序header?

编辑:

我接受了下面的建议作为答案,因为我在寻找相同的方向,但为了让可能偶然发现这个的人更清楚,这是我在 VB.net 中的实现。网格必须有 EnableCustomSorting = True。

Private Sub grid_CellClick(sender As Object, e As GridViewCellEventArgs) Handles grid.CellClick
    If TypeOf sender Is GridHeaderCellElement Then

        If dtGrid.DefaultView.Sort = e.Column.Name + " ASC" Then
            dtGrid.DefaultView.Sort = e.Column.Name + " DESC"
            'This line displays "down arrow" in column header, but makes sorting much slower for some reason.
            'e.Column.SortOrder = RadSortOrder.Descending
        Else
            dtGrid.DefaultView.Sort = e.Column.Name + " ASC"
            'e.Column.SortOrder = RadSortOrder.Ascending
        End If

    End If
End Sub

如果您想要 one-shot 排序,您应该在数据源中重新排序 object(移动列表中的 object 或通过在新订单然后反弹)。

然后,当然,您必须使用列 header 上的点击事件来处理此问题。