2017-02-28 4 views
0

J'ai datatable qui comprend les valeurs suivantes: enter image description hereC# sorte datatable personnalisé, un champ, puis le reste

Actuellement, je suis de tri de cette façon:

customTable.DefaultView.Sort = "Module asc"; 

Je veux déplacer le Intro être être le premier module inclus et ensuite par numéro à partir de 1 les autres modules, comment puis-je faire cela?

Merci à l'avance, Laziale

+0

-vous avoir un contrôle sur la structure de la datatable? Si c'est le cas, vous pouvez ajouter un champ Expression qui est un IF() qui recherche Intro et, s'il le trouve, utilise 0, sinon utilise le numéro du module. Puis trier par cette colonne. – Forty3

+0

J'ai un contrôle complet sur la structure, que proposez-vous, pouvez-vous s'il vous plaît me donner un échantillon de code? Thx – Laziale

+0

double possible de [DataView.Sort - plus que asc/desc (besoin tri personnalisé)] (http://stackoverflow.com/questions/582374/dataview-sort-more-than-just-asc-desc-need -custom tri) – wdosanjos

Répondre

0

En utilisant un champ d'expression sur le DataTable, vous pouvez contenir le genre dans le DataTable lui-même (si vous être la transmettre à d'autres consommateurs):

dt.Columns.Add("xxSort", 
       (123).GetType(), 
       "IIF([Module] = 'Intro', 0, Convert([Module], 'System.Int32'))"); 
dt.DefaultView.Sort = "xxSort ASC";