2009-05-09 9 views
4

C'est quelque chose que je ne peux pas croire que je ne l'ai pas été en mesure de comprendre - s'il vous plaît me dire que je me manque quelque chose de simple ...modifier l'ordre des colonnes de DataGrid ou de l'indice

J'ai un DataGrid, je le remplir avec LINQ ainsi qu'une classe personnalisée pour y ajouter des données. Par la suite, j'ai besoin des données dans un ordre spécifique - il semble m'ignorer. Comment changer les propriétés d'une colonne, comme l'index, etc.?

ici est le code LINQ J'utilise:

merci à l'avance ...

Dim query = From m In db.details _ 
       Where m.InboundDate >= CType(MonthCalendar1.SelectionStart, DateTime) _ 
       And m.InboundDate <= CType(MonthCalendar1.SelectionEnd, DateTime).AddHours(23).AddMinutes(59) _ 
       And m.ClientNo = 1 _ 
        Join md In db.Manifests On md.ManifestID Equals m.MainID _ 
       Select New GridData With {.manifestID = m.MainID, .InboundDate = m.InboundDate, .Zip = m.Zip, .LadingPkgQty = md.LadingPkgQty, .Weight = m.Weight, .Zone = m.Zone, .Fuel = 23, .LineHaul = Nothing, .Freight = Nothing, .BilledAmount = Nothing, .PackageRate = Nothing, .LTL = Nothing} 
+0

Bonjour, J'utilise un datagridview (comme beaucoup de .net après le fait!) - est-ce que changer les choses? -Joe –

Répondre

7

Résolu

Je ne peux pas croire à quel point des choses que je devais parcourir juste pour trouver ça!

Il semble maintenant évident Sooooo

Datagrid.Columns("Zone").DisplayIndex = 0

ou

Datagrid.columns(1).DisplayIndex=0

2

Qu'est-ce que vous voyez est un effet de la façon dont VB généré des types anonymes dans Visual Studio 2008 RTM. Le compilateur trierait les propriétés par ordre alphabétique. Par conséquent, peu importe l'ordre que vous avez spécifié, si les données lient une requête, les colonnes seront affichées par ordre alphabétique.

Dans Visual Studio 2008 SP1, le compilateur VB a apporté une modification pour résoudre ce problème. Les types anonymes généreront désormais des membres de type anonyme de la même manière que vous les spécifiez dans le code. Si vous effectuez une mise à niveau vers VS2008 SP1, vous devriez voir une modification de ce comportement.

Article détaillé sur le sujet

+0

Je cours le dernier service pack .... Que diriez-vous simplement de changer la position de la colonne après le fait? merci ... –

+0

OK - Je vois ce que vous dites maintenant ... Cependant, il existe un moyen de changer l'ordre lors de l'exécution? Votre temps est approximatif, Joe –

1

Je ne suis pas sûr que le spécifique de ce qui se passe, mais quelque chose à considérer ...

À quel moment êtes-vous modifier les colonnes? S'il est trop tard, il faudra peut-être rebondir sur la grille pour la redessiner. Habituellement, quand je change quelque chose et que je ne vois pas son effet sur l'écran, c'est en raison de l'ordre de liaison.

Questions connexes