2017-06-20 2 views
0

Je trier une colonne. Modifiez ensuite une valeur dans cette colonne: la ligne se repositionne automatiquement.Telerik RadGridView trier uniquement sur l'en-tête de colonne cliquez sur

Si je désactive le tri sur cette colonne (ou même toute la grille) avant l'édition et que je la rallume lorsque la valeur est modifiée dans l'événement CellValueChanged, elle est de nouveau triée.

Comment puis-je trier la grille uniquement lorsque je clique sur un en-tête de colonne?

modifier:

j'ai accepté la suggestion ci-après la réponse que je cherchais dans la même direction, mais pour le rendre plus clair pour quelqu'un qui pourrait tomber sur cela, voici ma mise en œuvre VB.net. La grille doit avoir 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 

Répondre

0

Si vous voulez une sorte d'un coup, vous devez réorganiser votre objet dans votre source de données (déplacer l'objet dans votre liste ou en créer un nouveau en ajoutant l'élément dans le nouvel ordre puis rebond). Ensuite, bien sûr, vous devez gérer cela avec l'événement click sur l'en-tête de la colonne.