OVH Cloud OVH Cloud

Recuperer une selection dans un datagrid

18 réponses
Avatar
Stef
Bonjour,

J'affiche le contenu d'une table ( via un dataset) dans un datagrid.
Je n'affiche pas l'id contenu dans la table.

Problème, quand je sélectionne une ligne dans le datagrid, comment récuperer
l'id, surtout lorsque les lignes sont triées?

Merci

8 réponses

1 2
Avatar
FAUCHILLE Stéphan
Petite Explication

J'ai un fichier xsd et un fichier xml, je charge tous ça dans un Dataset que
j'affiche dans un Datagrid. Dans mon Datagrid, toutes les colonnes ne
m'intéressent pas, donc je ne les affiche pas. Maitenant, lorsque je clic
sur une ligne de mon datagrid avec le bouton droit, j'ai la possbilité
d'executer des actions ( en fait, de modifier un champs de la ligne pas
affichée dans le datagrid). pour cela, il me faut donc pouvoir récupérer
l'id de la ligne sélectionnée (qui lui n'est pas affiché non plus dans le
Datagrid).

Une autre petite question. Je bosse sans base de données, simplement avec un
fichier xml, et étant données qu'il n'est pas possible de faire une requête
dans un Dataset, est-il possible de le faire dans le fichier xml?

Merci beaucoup pour votre aide. Dur dur le passage de VB6 vers VB.net, si
ça continue, je vais repasser par mes vieux fichiers texte et oublier l'xml


"LOIC" a écrit dans le message news:
Oq6e$
tu souhaites faire quoi exactement dans ton appli ? cela aidera surement à
trouver une solution


"Stef" a écrit dans le message de
news:%
> J'y ai pensé, mais c pas propre
>
>
> "LOIC" a écrit dans le message de news:
> %23p1mJ%
> > Pourquoi ne pas mettre ta colonne id/clef primaire en caché et
travailler
> > avec ?
> >
> > "laurent" a écrit dans le


message
de
> > news:412401c4af9b$ed33c080$
> > Une idée bête qui devrait marcher :
> > pourquoi pas une colonne invisible !?
> > après ton setdatabindings, faits grid.columns(0).visible > > > false!
> >
> >>-----Message d'origine-----
> >>Alors comment faire ?
> >>
> >>
> >>
> >>"LOIC" a écrit dans le
> > message news:
> >>
> >>> Tout a fait car la tu récupères le numéro de la ligne
> > du datagrid mais pas
> >>> du dataset !!
> >>>
> >>> "Stef" a écrit dans le message
> > de
> >>> news:%
> >>> > Ca marche, mais quand tu tries les colonnes, c'est
> > foutu
> >>> >
> >>> >
> >>> > "LOIC" a écrit dans le
> > message de news:
> >>> > uZ6$
> >>> > > Bonjour,
> >>> > > Regarde du coté des propriétés
> > dataGrid1.CurrentCell.ColumnNumber et
> >>> > > dataGrid1.CurrentCell.RowNumber si cela peut
> > convenir à ton problème.
> >>> > >
> >>> > > @+
> >>> > >
> >>> > > "Stef" a écrit dans le
> > message de
> >>> > > news:
> >>> > >> Merci, mais cela ne s'applique pas à mon cas, je
> > suis en Windows Form
> >>> > >>
> >>> > >>
> >>> > >>
> >>> > >> "Philippe Laloum" a
> > écrit dans le
> >>message
> >>> > >> de
> >>> > >> news:
> >>> > >> > Bonjour,
> >>> > >> >
> >>> > >> > Il faut utiliser pour cela les propriétés
> > DataKeyField et DataKeys
> >>de
> >>> > >> > la
> >>> > >> > DataGrid. Voir l'exemple ici:
> >>> > >> >
> >>> > >
> >>>
> >>http://msdn.microsoft.com/library/default.asp?
> > url=/library/en-us/cpref/html/
> >>frlrfsystemwebuiwebcontrolsbasedatalistclassdatakeyfieldto
> > pic.asp
> >>> > >> >
> >>> > >> >
> >>> > >> > "Stef" wrote in message
> >>> > >> > news:Or6V$
> >>> > >> >> Bonjour,
> >>> > >> >>
> >>> > >> >> J'affiche le contenu d'une table ( via un
> > dataset) dans un
> >>datagrid.
> >>> > >> >> Je n'affiche pas l'id contenu dans la table.
> >>> > >> >>
> >>> > >> >> Problème, quand je sélectionne une ligne dans
> > le datagrid, comment
> >>> > >> > récuperer
> >>> > >> >> l'id, surtout lorsque les lignes sont triées?
> >>> > >> >>
> >>> > >> >> Merci
> >>> > >> >>
> >>> > >> >>
> >>> > >> >
> >>> > >> >
> >>> > >>
> >>> > >>
> >>> > >
> >>> > >
> >>> >
> >>> >
> >>>
> >>>
> >>
> >>
> >>.
> >>
> >
> >
>
>




Avatar
Stef
J'ai répondu à loic sur un autre poste, d'ou un autre nom


"FAUCHILLE Stéphan" a écrit dans le message news:

Petite Explication

J'ai un fichier xsd et un fichier xml, je charge tous ça dans un Dataset


que
j'affiche dans un Datagrid. Dans mon Datagrid, toutes les colonnes ne
m'intéressent pas, donc je ne les affiche pas. Maitenant, lorsque je clic
sur une ligne de mon datagrid avec le bouton droit, j'ai la possbilité
d'executer des actions ( en fait, de modifier un champs de la ligne pas
affichée dans le datagrid). pour cela, il me faut donc pouvoir récupérer
l'id de la ligne sélectionnée (qui lui n'est pas affiché non plus dans le
Datagrid).

Une autre petite question. Je bosse sans base de données, simplement avec


un
fichier xml, et étant données qu'il n'est pas possible de faire une


requête
dans un Dataset, est-il possible de le faire dans le fichier xml?

Merci beaucoup pour votre aide. Dur dur le passage de VB6 vers VB.net, si
ça continue, je vais repasser par mes vieux fichiers texte et oublier


l'xml


"LOIC" a écrit dans le message news:
Oq6e$
> tu souhaites faire quoi exactement dans ton appli ? cela aidera surement


à
> trouver une solution
>
>
> "Stef" a écrit dans le message de
> news:%
> > J'y ai pensé, mais c pas propre
> >
> >
> > "LOIC" a écrit dans le message de news:
> > %23p1mJ%
> > > Pourquoi ne pas mettre ta colonne id/clef primaire en caché et
> travailler
> > > avec ?
> > >
> > > "laurent" a écrit dans le
message
> de
> > > news:412401c4af9b$ed33c080$
> > > Une idée bête qui devrait marcher :
> > > pourquoi pas une colonne invisible !?
> > > après ton setdatabindings, faits grid.columns(0).visible > > > > false!
> > >
> > >>-----Message d'origine-----
> > >>Alors comment faire ?
> > >>
> > >>
> > >>
> > >>"LOIC" a écrit dans le
> > > message news:
> > >>
> > >>> Tout a fait car la tu récupères le numéro de la ligne
> > > du datagrid mais pas
> > >>> du dataset !!
> > >>>
> > >>> "Stef" a écrit dans le message
> > > de
> > >>> news:%
> > >>> > Ca marche, mais quand tu tries les colonnes, c'est
> > > foutu
> > >>> >
> > >>> >
> > >>> > "LOIC" a écrit dans le
> > > message de news:
> > >>> > uZ6$
> > >>> > > Bonjour,
> > >>> > > Regarde du coté des propriétés
> > > dataGrid1.CurrentCell.ColumnNumber et
> > >>> > > dataGrid1.CurrentCell.RowNumber si cela peut
> > > convenir à ton problème.
> > >>> > >
> > >>> > > @+
> > >>> > >
> > >>> > > "Stef" a écrit dans le
> > > message de
> > >>> > > news:
> > >>> > >> Merci, mais cela ne s'applique pas à mon cas, je
> > > suis en Windows Form
> > >>> > >>
> > >>> > >>
> > >>> > >>
> > >>> > >> "Philippe Laloum" a
> > > écrit dans le
> > >>message
> > >>> > >> de
> > >>> > >> news:
> > >>> > >> > Bonjour,
> > >>> > >> >
> > >>> > >> > Il faut utiliser pour cela les propriétés
> > > DataKeyField et DataKeys
> > >>de
> > >>> > >> > la
> > >>> > >> > DataGrid. Voir l'exemple ici:
> > >>> > >> >
> > >>> > >
> > >>>
> > >>http://msdn.microsoft.com/library/default.asp?
> > > url=/library/en-us/cpref/html/
> > >>frlrfsystemwebuiwebcontrolsbasedatalistclassdatakeyfieldto
> > > pic.asp
> > >>> > >> >
> > >>> > >> >
> > >>> > >> > "Stef" wrote in message
> > >>> > >> > news:Or6V$
> > >>> > >> >> Bonjour,
> > >>> > >> >>
> > >>> > >> >> J'affiche le contenu d'une table ( via un
> > > dataset) dans un
> > >>datagrid.
> > >>> > >> >> Je n'affiche pas l'id contenu dans la table.
> > >>> > >> >>
> > >>> > >> >> Problème, quand je sélectionne une ligne dans
> > > le datagrid, comment
> > >>> > >> > récuperer
> > >>> > >> >> l'id, surtout lorsque les lignes sont triées?
> > >>> > >> >>
> > >>> > >> >> Merci
> > >>> > >> >>
> > >>> > >> >>
> > >>> > >> >
> > >>> > >> >
> > >>> > >>
> > >>> > >>
> > >>> > >
> > >>> > >
> > >>> >
> > >>> >
> > >>>
> > >>>
> > >>
> > >>
> > >>.
> > >>
> > >
> > >
> >
> >
>
>




Avatar
LOIC
Si tu bind ton dataset dans ta datagrid lorsque tu fais un
DataGrid1.CurrentCell.RowNumber tu as le numéro de la ligne donc si ensuite
tu utilises par exemple
Ton_DataSet.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber).Item("nom de ta
colonne") tu devrais pouvoir modifier ta cellule ensuite si tu trie comme tu
as modifié dans le dataset c'est ta procédure update qui mettra à jour ta
bdd sans problème.

Concernant les requêtes sql je ne sait pas je sais qu'on peut faire des
elect sur les datatable mais je n'ai pas encore eu le temps de tester la
chose.

Pour le xml je passe la main pour l'instant ;)


"FAUCHILLE Stéphan" a écrit dans le message de
news:
Petite Explication

J'ai un fichier xsd et un fichier xml, je charge tous ça dans un Dataset


que
j'affiche dans un Datagrid. Dans mon Datagrid, toutes les colonnes ne
m'intéressent pas, donc je ne les affiche pas. Maitenant, lorsque je clic
sur une ligne de mon datagrid avec le bouton droit, j'ai la possbilité
d'executer des actions ( en fait, de modifier un champs de la ligne pas
affichée dans le datagrid). pour cela, il me faut donc pouvoir récupérer
l'id de la ligne sélectionnée (qui lui n'est pas affiché non plus dans le
Datagrid).

Une autre petite question. Je bosse sans base de données, simplement avec


un
fichier xml, et étant données qu'il n'est pas possible de faire une


requête
dans un Dataset, est-il possible de le faire dans le fichier xml?

Merci beaucoup pour votre aide. Dur dur le passage de VB6 vers VB.net, si
ça continue, je vais repasser par mes vieux fichiers texte et oublier


l'xml


"LOIC" a écrit dans le message news:
Oq6e$
> tu souhaites faire quoi exactement dans ton appli ? cela aidera surement


à
> trouver une solution
>
>
> "Stef" a écrit dans le message de
> news:%
> > J'y ai pensé, mais c pas propre
> >
> >
> > "LOIC" a écrit dans le message de news:
> > %23p1mJ%
> > > Pourquoi ne pas mettre ta colonne id/clef primaire en caché et
> travailler
> > > avec ?
> > >
> > > "laurent" a écrit dans le
message
> de
> > > news:412401c4af9b$ed33c080$
> > > Une idée bête qui devrait marcher :
> > > pourquoi pas une colonne invisible !?
> > > après ton setdatabindings, faits grid.columns(0).visible > > > > false!
> > >
> > >>-----Message d'origine-----
> > >>Alors comment faire ?
> > >>
> > >>
> > >>
> > >>"LOIC" a écrit dans le
> > > message news:
> > >>
> > >>> Tout a fait car la tu récupères le numéro de la ligne
> > > du datagrid mais pas
> > >>> du dataset !!
> > >>>
> > >>> "Stef" a écrit dans le message
> > > de
> > >>> news:%
> > >>> > Ca marche, mais quand tu tries les colonnes, c'est
> > > foutu
> > >>> >
> > >>> >
> > >>> > "LOIC" a écrit dans le
> > > message de news:
> > >>> > uZ6$
> > >>> > > Bonjour,
> > >>> > > Regarde du coté des propriétés
> > > dataGrid1.CurrentCell.ColumnNumber et
> > >>> > > dataGrid1.CurrentCell.RowNumber si cela peut
> > > convenir à ton problème.
> > >>> > >
> > >>> > > @+
> > >>> > >
> > >>> > > "Stef" a écrit dans le
> > > message de
> > >>> > > news:
> > >>> > >> Merci, mais cela ne s'applique pas à mon cas, je
> > > suis en Windows Form
> > >>> > >>
> > >>> > >>
> > >>> > >>
> > >>> > >> "Philippe Laloum" a
> > > écrit dans le
> > >>message
> > >>> > >> de
> > >>> > >> news:
> > >>> > >> > Bonjour,
> > >>> > >> >
> > >>> > >> > Il faut utiliser pour cela les propriétés
> > > DataKeyField et DataKeys
> > >>de
> > >>> > >> > la
> > >>> > >> > DataGrid. Voir l'exemple ici:
> > >>> > >> >
> > >>> > >
> > >>>
> > >>http://msdn.microsoft.com/library/default.asp?
> > > url=/library/en-us/cpref/html/
> > >>frlrfsystemwebuiwebcontrolsbasedatalistclassdatakeyfieldto
> > > pic.asp
> > >>> > >> >
> > >>> > >> >
> > >>> > >> > "Stef" wrote in message
> > >>> > >> > news:Or6V$
> > >>> > >> >> Bonjour,
> > >>> > >> >>
> > >>> > >> >> J'affiche le contenu d'une table ( via un
> > > dataset) dans un
> > >>datagrid.
> > >>> > >> >> Je n'affiche pas l'id contenu dans la table.
> > >>> > >> >>
> > >>> > >> >> Problème, quand je sélectionne une ligne dans
> > > le datagrid, comment
> > >>> > >> > récuperer
> > >>> > >> >> l'id, surtout lorsque les lignes sont triées?
> > >>> > >> >>
> > >>> > >> >> Merci
> > >>> > >> >>
> > >>> > >> >>
> > >>> > >> >
> > >>> > >> >
> > >>> > >>
> > >>> > >>
> > >>> > >
> > >>> > >
> > >>> >
> > >>> >
> > >>>
> > >>>
> > >>
> > >>
> > >>.
> > >>
> > >
> > >
> >
> >
>
>




Avatar
Stef
Merci

"LOIC" a écrit dans le message de news:

Si tu bind ton dataset dans ta datagrid lorsque tu fais un
DataGrid1.CurrentCell.RowNumber tu as le numéro de la ligne donc si
ensuite
tu utilises par exemple
Ton_DataSet.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber).Item("nom de
ta
colonne") tu devrais pouvoir modifier ta cellule ensuite si tu trie comme
tu
as modifié dans le dataset c'est ta procédure update qui mettra à jour ta
bdd sans problème.

Concernant les requêtes sql je ne sait pas je sais qu'on peut faire des
elect sur les datatable mais je n'ai pas encore eu le temps de tester la
chose.

Pour le xml je passe la main pour l'instant ;)


"FAUCHILLE Stéphan" a écrit dans le message de
news:
Petite Explication

J'ai un fichier xsd et un fichier xml, je charge tous ça dans un Dataset


que
j'affiche dans un Datagrid. Dans mon Datagrid, toutes les colonnes ne
m'intéressent pas, donc je ne les affiche pas. Maitenant, lorsque je clic
sur une ligne de mon datagrid avec le bouton droit, j'ai la possbilité
d'executer des actions ( en fait, de modifier un champs de la ligne pas
affichée dans le datagrid). pour cela, il me faut donc pouvoir récupérer
l'id de la ligne sélectionnée (qui lui n'est pas affiché non plus dans le
Datagrid).

Une autre petite question. Je bosse sans base de données, simplement avec


un
fichier xml, et étant données qu'il n'est pas possible de faire une


requête
dans un Dataset, est-il possible de le faire dans le fichier xml?

Merci beaucoup pour votre aide. Dur dur le passage de VB6 vers VB.net,
si
ça continue, je vais repasser par mes vieux fichiers texte et oublier


l'xml


"LOIC" a écrit dans le message news:
Oq6e$
> tu souhaites faire quoi exactement dans ton appli ? cela aidera
> surement


à
> trouver une solution
>
>
> "Stef" a écrit dans le message de
> news:%
> > J'y ai pensé, mais c pas propre
> >
> >
> > "LOIC" a écrit dans le message de news:
> > %23p1mJ%
> > > Pourquoi ne pas mettre ta colonne id/clef primaire en caché et
> travailler
> > > avec ?
> > >
> > > "laurent" a écrit dans le
message
> de
> > > news:412401c4af9b$ed33c080$
> > > Une idée bête qui devrait marcher :
> > > pourquoi pas une colonne invisible !?
> > > après ton setdatabindings, faits grid.columns(0).visible >> > > > false!
> > >
> > >>-----Message d'origine-----
> > >>Alors comment faire ?
> > >>
> > >>
> > >>
> > >>"LOIC" a écrit dans le
> > > message news:
> > >>
> > >>> Tout a fait car la tu récupères le numéro de la ligne
> > > du datagrid mais pas
> > >>> du dataset !!
> > >>>
> > >>> "Stef" a écrit dans le message
> > > de
> > >>> news:%
> > >>> > Ca marche, mais quand tu tries les colonnes, c'est
> > > foutu
> > >>> >
> > >>> >
> > >>> > "LOIC" a écrit dans le
> > > message de news:
> > >>> > uZ6$
> > >>> > > Bonjour,
> > >>> > > Regarde du coté des propriétés
> > > dataGrid1.CurrentCell.ColumnNumber et
> > >>> > > dataGrid1.CurrentCell.RowNumber si cela peut
> > > convenir à ton problème.
> > >>> > >
> > >>> > > @+
> > >>> > >
> > >>> > > "Stef" a écrit dans le
> > > message de
> > >>> > > news:
> > >>> > >> Merci, mais cela ne s'applique pas à mon cas, je
> > > suis en Windows Form
> > >>> > >>
> > >>> > >>
> > >>> > >>
> > >>> > >> "Philippe Laloum" a
> > > écrit dans le
> > >>message
> > >>> > >> de
> > >>> > >> news:
> > >>> > >> > Bonjour,
> > >>> > >> >
> > >>> > >> > Il faut utiliser pour cela les propriétés
> > > DataKeyField et DataKeys
> > >>de
> > >>> > >> > la
> > >>> > >> > DataGrid. Voir l'exemple ici:
> > >>> > >> >
> > >>> > >
> > >>>
> > >>http://msdn.microsoft.com/library/default.asp?
> > > url=/library/en-us/cpref/html/
> > >>frlrfsystemwebuiwebcontrolsbasedatalistclassdatakeyfieldto
> > > pic.asp
> > >>> > >> >
> > >>> > >> >
> > >>> > >> > "Stef" wrote in message
> > >>> > >> > news:Or6V$
> > >>> > >> >> Bonjour,
> > >>> > >> >>
> > >>> > >> >> J'affiche le contenu d'une table ( via un
> > > dataset) dans un
> > >>datagrid.
> > >>> > >> >> Je n'affiche pas l'id contenu dans la table.
> > >>> > >> >>
> > >>> > >> >> Problème, quand je sélectionne une ligne dans
> > > le datagrid, comment
> > >>> > >> > récuperer
> > >>> > >> >> l'id, surtout lorsque les lignes sont triées?
> > >>> > >> >>
> > >>> > >> >> Merci
> > >>> > >> >>
> > >>> > >> >>
> > >>> > >> >
> > >>> > >> >
> > >>> > >>
> > >>> > >>
> > >>> > >
> > >>> > >
> > >>> >
> > >>> >
> > >>>
> > >>>
> > >>
> > >>
> > >>.
> > >>
> > >
> > >
> >
> >
>
>








Avatar
momo
Etant donné que tu as une liaison de données il faut passer par un
DataManagerBase. Avec sa propriété Position il pointe sur l'enregistrement
de ta source de données même si tu fais un tri sur une colonne du DataGrid.
En plus il a des événements bien pratiques...

@+

"Stef" a écrit dans le message de news:
Or6V$
Bonjour,

J'affiche le contenu d'une table ( via un dataset) dans un datagrid.
Je n'affiche pas l'id contenu dans la table.

Problème, quand je sélectionne une ligne dans le datagrid, comment


récuperer
l'id, surtout lorsque les lignes sont triées?

Merci




Avatar
LOIC
Tu as des exemples ? Car j'ai jamais utilisé ce composant et si tu dis qu'il
as des évenements pratiques !!


"momo" a écrit dans le message de
news:%
Etant donné que tu as une liaison de données il faut passer par un
DataManagerBase. Avec sa propriété Position il pointe sur l'enregistrement
de ta source de données même si tu fais un tri sur une colonne du


DataGrid.
En plus il a des événements bien pratiques...

@+

"Stef" a écrit dans le message de news:
Or6V$
> Bonjour,
>
> J'affiche le contenu d'une table ( via un dataset) dans un datagrid.
> Je n'affiche pas l'id contenu dans la table.
>
> Problème, quand je sélectionne une ligne dans le datagrid, comment
récuperer
> l'id, surtout lorsque les lignes sont triées?
>
> Merci
>
>



Avatar
momo
Oups... Je voulais dire BindingManagerBase, il est parfaitement documenté
dans l'aide...
Avatar
Stef
Et comme ça, ça marche??? Je vais essayer !!!


"momo" a écrit dans le message news:

Oups... Je voulais dire BindingManagerBase, il est parfaitement documenté
dans l'aide...



1 2