OVH Cloud OVH Cloud

Comment un DataSet autrement

4 réponses
Avatar
aitoz
Bonjour a tous,

j'ai un DataSet avec pleins de champs et je voudrais l'afficher dans un
DataGrid.
Le probleme est que je veux pouvoir afficher dans le datagrid qu'une partie
des champs. Pas tous.
Dans un ordre bien défini qui n'est pas forcement celui du dataset.

Quel objet utiliser ? un DataView ?

Merci a tous

4 réponses

Avatar
Guillaume Davion
Il ne faut pas générer les colonnes automatiquement, et les définir
à la main.
Enfin ça, c'est en ASP.NET. En windows form, il faut mettre un
DataGridTableStyle
Avatar
TroXsA - [VB.NET-2005]
Bonjour

Pourquoi ne pas passer par un ArrayList pour faire le triage voulu puis les
retraité avec le datagrid ?

--
TroXsA
http://cerbermail.com/?rIXgaw9Xsl
Avatar
aitoz
oui, mais je pense (je peux me tromper) qu'en fonction de ce que je veux de
dois tout prendre !
je m'explique ;

J'ai une feuille coupée en deux parties.
1- la partie du haut avec les informations sur les livraisons et
2- la partie du bas avec des informations sur l'article de la ligne
selectionnée etc...

Je prend tout dans un dataset pour optimiser la charge réseau et la prog. De
ce fait, je peux alors afficher que les 10 champs necessaire a la partie du
haut et je pourrais ensuite faire un databinding pour la partie du bas.
Plutot que fairer un truc pile poil pour le haut et d'avoir un traitement
lon et couteux pour la partie du bas.

J'espère que je me suis fais comprendre.

C'est pour ca que je veux recupérer et mettre en forme uniquement quelques
champs de mon dataset dans mon datagrid.
Je pense que je vais utiliser un datagridtablestyle effectivement !

voici mon code :

Private Sub FormaterDataGrid()

DataGrid1.SuspendLayout()

Dim DgTs As DataGridTableStyle = New DataGridTableStyle
Dim i As Int16

DataGrid1.DataSource = Ds_LignesBL.Tables(0)
DgTs.MappingName = Ds_LignesBL.Tables(0).TableName
DataGrid1.TableStyles.Add(DgTs)

For i = 0 To 74
DataGrid1.TableStyles(0).GridColumnStyles(i).NullText = ""
DataGrid1.TableStyles(0).GridColumnStyles(i).Width = 0
Next i

DataGrid1.TableStyles(0).GridColumnStyles(36).Width = 20
DataGrid1.TableStyles(0).GridColumnStyles(37).Width = 25
DataGrid1.TableStyles(0).GridColumnStyles(11).Width = 90
DataGrid1.TableStyles(0).GridColumnStyles(61).Width = 110
DataGrid1.TableStyles(0).GridColumnStyles(24).Width = 40
DataGrid1.TableStyles(0).GridColumnStyles(26).Width = 25
DataGrid1.TableStyles(0).GridColumnStyles(25).Width = 40
DataGrid1.TableStyles(0).GridColumnStyles(31).Width = 50
DataGrid1.TableStyles(0).GridColumnStyles(32).Width = 50
DataGrid1.TableStyles(0).GridColumnStyles(33).Width = 60
DataGrid1.TableStyles(0).GridColumnStyles(72).Width = 60

DataGrid1.TableStyles(0).GridColumnStyles(36).HeaderText = "S"
DataGrid1.TableStyles(0).GridColumnStyles(37).HeaderText = "Lgn"
DataGrid1.TableStyles(0).GridColumnStyles(11).HeaderText = "Identifiant"
DataGrid1.TableStyles(0).GridColumnStyles(61).HeaderText = "Designation"
DataGrid1.TableStyles(0).GridColumnStyles(24).HeaderText = "Self"
DataGrid1.TableStyles(0).GridColumnStyles(26).HeaderText = "Statut"
DataGrid1.TableStyles(0).GridColumnStyles(25).HeaderText = "N° Bac"
DataGrid1.TableStyles(0).GridColumnStyles(31).HeaderText = "Qté cdée"
DataGrid1.TableStyles(0).GridColumnStyles(32).HeaderText = "Qté liv"
DataGrid1.TableStyles(0).GridColumnStyles(33).HeaderText = "Prix ? 100"
DataGrid1.TableStyles(0).GridColumnStyles(72).HeaderText = "Pflex"


'Ca ne marche pas ça !!! hihihi
'Pou mettre les deux colonnes en marron
DataGrid1.TableStyles(0).GridColumnStyles(25).DataGridTableStyle.ForeColor =
System.Drawing.Color.Brown
DataGrid1.TableStyles(0).GridColumnStyles(26).DataGridTableStyle.ForeColor =
System.Drawing.Color.Brown


DataGrid1.ResumeLayout()

End Sub
Avatar
aitoz
C bon j'ai trouvé ! c trop fort !
Effectivement j'utilise le controle datagridtablestyle et
datagridcolumnstyle !

Merci et bonne journée