J'utilise GridView pour lier à l'aide d'ObjectDataSource à l'aide de la propriété DataSource. Maintenant, le problème est que j'ai un champ entier qui est montré comme ci-dessous:Le tri GridView ne fonctionne pas avec ObjectDataSource
<asp:GridView ... DataSource="MyObjectDataSource" OnSorting="MyGrdView_Sorting" >
<Columns>
<asp:BoundField DataField="IntegerField" Visible="False" SortExpression="IntegerField" />
</Columns>
</asp:GridView>
Je capture également l'événement RowCommand pour mon but de logique métier et le feu la méthode Trier() de GridView là-dedans. Dans le cas, si j'exécute la méthode Sort() du gestionnaire d'événements de tri, j'obtiens une exception de dépassement de pile dont je ne sais pas pourquoi cela se produit?
Enfin, même après avoir fait les bonnes choses que je pense ne se produisent pas ici, le tri ne fonctionne tout simplement pas dans mon GridView avec IntegerField. Qu'est-ce que je fais mal? :(
Je viens de faire (expéditeur (GridView)) .Sort ("IntegerField", SortDirection.Ascending); dans le gestionnaire MyGrdView_Sorting. Cependant, en faisant cela, je reçois une exception Stack Overflow, donc, je fais la même chose dans ma logique métier maintenant. –
Bonjour, Il n'existe aucune propriété nommée ObjectDataSource.CanSort. Premièrement, CanSort est une propriété de ObjectDataSourceView et deuxièmement, il s'agit d'une propriété en lecture seule qui ne peut pas être définie. Cependant, je comprends pourquoi j'obtiens une exception de dépassement de pile avec le motif expliqué. Merci! –
@Anonymous: Vrai, j'étais trop rapide dans la lecture de l'implémentation d'ExecuteSelect. La propriété ObjectDataSourceView.CanSort est codée en dur pour renvoyer true, donc spécifier SortParameterName devrait être suffisant. – sisve