我排序一列。然后编辑该列中的一个值 - 该行自动重新定位。
如果我在编辑之前禁用对该列(甚至整个网格)的排序,并在更改值时将其重新打开 CellValueChanged事件,它再次排序。
如何仅在单击列标题时才进行网格排序?
编辑:
我接受了下面的建议,因为我正朝着同一个方向寻找答案,但是为了让那些可能偶然发现的人更清楚,这是我在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
答案 0 :(得分:0)
如果你想要一次性排序,你应该重新排序数据源中的对象(移动列表中的对象或通过以新顺序添加项目然后反弹来创建一个新对象)。
然后,当然,您必须使用列标题上的click事件处理此问题。