Je veux trier mes lignes Gridview par une colonne modèle qui n'est liée à aucun champ de base de données. Ce modèle coulmn a juste une étiquette dont le texte est défini dans le code en fonction d'une valeur dans une colonne différente qui est databound. Je suis donc bloqué sur la façon de définir son sortExpression puisque ce n'est pas lié à une colonne.comment trier les lignes Gridview par une colonne Modèle non liée
Répondre
Votre comportement souhaité est possible. Voici ce que vous devez faire:
1) Abonnez-vous à l'événement de tri de GridView.
2) Ajoutez un SortExpression à votre colonne de création, comme "MyOwnSortExpression". 2) Dans eventhandler, vous avez accès à SortExpression via EventArgs. e.SortExpression
3) Créez une méthode qui exécute DataBinding sur GridView. Cette méthode a 2 paramètres. Le premier est le nom de la colonne qui doit être triée, et le second est le Sortdirection. (serait bien de basculer la direction de tri après avoir cliqué deux fois sur la même colonne) 4) Ajouter un commutateur de code qui effectue un tri manuel uniquement sur la colonne souhaitée.
Exemple:
protected void gv_Sorting(object sender, GridViewSortEventArgs e)
{
if(e.SortExpression == MyOwnSortExpression)
{
UpdateDataBinding(e.SortExpression, e.SortDirection);
e.Cancel = true;
return;
}
}
protected void UpdateDataBinding(String sortexpression, SortDirection direction)
{
switch(sortExpression)
{
case "MyOwnSortExpression":
var myData = GetYouSpecificDataFromDB();
if(direction == SortDirection.Ascending)
{
var = var.OrderBy(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
else
{
var = var.OrderByDescending(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
this.gv.DataSource = var.ToList();
this.gv.DataBind();
break;
}
}
Vous pouvez ajouter la mise en cache pour la SortDirection et la colonne de tri pour activer un mécanisme de basculement.
Votre solution peut varier en fonction du type de vous faire databinding sont (LINQ to Sql, ObjectDataSource, ...)
Ce lien http://blogs.sftsrc.com/stuart/archive/2009/02/19/130.aspx fournit également une belle classe. Fonctionne mieux si vous pouvez créer un Wrapperclass, contenant toutes les valeurs qui vont être affichées. La solution que j'ai suggérée n'a pas besoin d'une classe wrapper, mais elle manque de flexibilité.
- 1. Comment trier gridview par colonne contenant un nombre entier nul?
- 2. Trier une colonne GridView associée à une autre table
- 3. Trier le gridview asp.net sur une colonne liée dans la page aspx
- 4. Comment trier une liste liée en SQL?
- 5. Comment trier uniquement les lignes affichées dans gridview?
- 6. trier csv par colonne
- 7. Modifier toutes les lignes pour une colonne dans un GridView
- 8. Liste déroulante liée aux données dans un modèle gridview
- 9. jQuery: Trier une colonne de table non rangée
- 10. Trier par null/non nul avec ICriteria
- 11. Comment filtrer les lignes par les valeurs d'une colonne?
- 12. Rendre la colonne liée invisible par programmation
- 13. Entité Modèle et liaison Étiquette à une table non liée
- 14. Retirer les lignes non référencées par une clé étrangère
- 15. DataGrid WPF: comment trier une colonne par programme?
- 16. Réorganiser la colonne de modèle dans Gridview
- 17. Obtention de la valeur d'une colonne invisible sur une ligne liée dans un GridView
- 18. WPF ListBox pouvant trier par colonne
- 19. Comment trier les données dans GridView dans asp.net
- 20. dans gql, comment trier par un champ dans une autre classe liée par referenceproperty?
- 21. Sur Postback, comment obtenir la colonne que je trier par mon GridView?
- 22. Comment trier l'objet du modèle par objet dans le dictionnaire?
- 23. ASP.NET GridView Trier?
- 24. Comment puis-je trier une table par une colonne dans une autre dans MySQL?
- 25. bit colonne comme une colonne de cases à cocher dans Datagridview non liée
- 26. Comment calculer la valeur de la colonne non liée en fonction de la valeur de la colonne liée dans DatagGridView?
- 27. Tri Unix pour trier une seule colonne
- 28. Modification facultative dans les lignes de GridView?
- 29. Comment trier les enregistrements par page
- 30. trier les lignes dans l'éditeur 'VI'