Bonsoir à tous,
Ce soir je sèche sur une question d'affectation.
Voilà, je manipule des dropdownlist, et cours des traitements je suis
à travailler sur une DDL "copie" de ma DDL initiale.
(copie, c'est à dire strictement identique dans la fenêtre espion ...)
En fait une affectation Copie = ID de la DDL.
Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
j'aimerais réaffecter la copie à la DDL initiale.
l'affectation inverse ...
Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
que je ne sais pas me servir de cette chaîne pour faire qqch comme
ID = copie ( affectation à l'objet initial de la DDL copie)
Merci d'avance de vos réponses
Bonsoir à tous,
Ce soir je sèche sur une question d'affectation.
Voilà, je manipule des dropdownlist, et cours des traitements je suis
à travailler sur une DDL "copie" de ma DDL initiale.
(copie, c'est à dire strictement identique dans la fenêtre espion ...)
En fait une affectation Copie = ID de la DDL.
Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
j'aimerais réaffecter la copie à la DDL initiale.
l'affectation inverse ...
Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
que je ne sais pas me servir de cette chaîne pour faire qqch comme
ID = copie ( affectation à l'objet initial de la DDL copie)
Merci d'avance de vos réponses
Bonsoir à tous,
Ce soir je sèche sur une question d'affectation.
Voilà, je manipule des dropdownlist, et cours des traitements je suis
à travailler sur une DDL "copie" de ma DDL initiale.
(copie, c'est à dire strictement identique dans la fenêtre espion ...)
En fait une affectation Copie = ID de la DDL.
Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
j'aimerais réaffecter la copie à la DDL initiale.
l'affectation inverse ...
Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
que je ne sais pas me servir de cette chaîne pour faire qqch comme
ID = copie ( affectation à l'objet initial de la DDL copie)
Merci d'avance de vos réponses
Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" wrote in message
news:
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" <cpeltier@discussions.microsoft.com> wrote in message
news:1B285C08-7D62-40B2-83EF-CB888A2636DB@microsoft.com...
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" wrote in message
news:
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Bonjour Paul,
Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
faire
ma première affectation.
Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
ou
".UniqueID"
Ce que je cherche c'est : comment, connaissant cette représentation qui
est
fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
puis
je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
?
Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
initialisations de DDL, tout fonctionne comme tu l'indiques.
Après cela se complexifie un peu.
Pour entrer dans le détail voici un peu plus d'explication ...
Je cherche à gérer un nombre quelconque de dropdownlist de façon à
réaliser
un filtre.
Exemple : Nom / prénom / datenaissance ..
Le comportement attendu est le suivant :
- une sélection sur l'une des DDL restreint les valeurs autorisées sur
chacune des autres.
ex une sélection sur le nom restreint l'affichage des prénoms de la même
famille, et l'affichage des dates de naissance.
une autre sélection, sur la date de naissance, restreint l'affichage
des
prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
Pour arriver à cette gestion j'ai créé une structure comme suit :
Structure Liste
Dim DDL As DropDownList 'Les valeurs ...
Dim Table As String 'Le nom de la table contenant
les valeurs
Dim ChampTable As String 'Le nom du champ de la table
contenant ...
Dim ValCour As String 'La valeur courante de la liste
End Structure
J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
liées.
Typiquement :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = DateNaiss_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Date Naissance]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
clstE = cLstLiées
ce qui initialise clstLiées comme indiqué ci-dessous (1)
J'ai, parallèlement, déclaré deux collections de travail me permettant de
gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
clause Where )
ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
clstE.
J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
partir de mes collection de travail)
For Each inst In cLstLiées
...
strItem > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
Maliste.Items.Add(strItem)
...
Next
jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
avec
leurs valeurs respectives.
-------------
Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
changement dans une des DDL.
ces évènements appellent une procédure de filtre :
FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
dont les arguments sont l'index de la liste et la liste dans la collection
correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
(1) )
cette procédure initialise une nouvelle liste "inst2". et modifie les
valeurs (coformément aux attentes)
(si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
tardive")
Les collections sont correctement mises à jour en particulier
clstLiées(1).ddl est correctement modifiée avec les prénoms,
clstLiées(2).ddl
est modifiée avec les bonnes dates de naissance.
Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
----------------------------------------------------------------------------------------------------------------------------
(1)
- clstliées {Length=3} Microsoft.VisualBasic.Collection
(0) "Empty placeholder to adjust for 1 based array" String
- (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Key {Object} Object
- Value {Volicante.Membre.Liste} Object
- [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
ChampTable "[NomFamille]" String
- DDL {System.Web.UI.WebControls.DropDownList}
System.Web.UI.WebControls.DropDownList
AccessKey "" String
+ Attributes {System.Web.UI.AttributeCollection}
System.Web.UI.AttributeCollection
AutoPostBack True Boolean
+ BackColor {System.Drawing.Color} System.Drawing.Color
+ BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ BorderColor {System.Drawing.Color} System.Drawing.Color
BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
+ BorderWidth {System.Web.UI.WebControls.Unit}
System.Web.UI.WebControls.Unit
ClientID "Nom_M" String
+ Controls {System.Web.UI.EmptyControlCollection}
System.Web.UI.ControlCollection
+ ControlStyle {System.Web.UI.WebControls.Style}
System.Web.UI.WebControls.Style
ControlStyleCreated True Boolean
CssClass "" String
DataMember "" String
DataSource Nothing Object
DataTextField "" String
DataTextFormatString "" String
DataValueField "" String
Enabled True Boolean
EnableViewState True Boolean
+ Font {System.Web.UI.WebControls.FontInfo}
System.Web.UI.WebControls.FontInfo
+ ForeColor {System.Drawing.Color} System.Drawing.Color
+ Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
ID "Nom_M" String
+ Items {System.Web.UI.WebControls.ListItemCollection}
System.Web.UI.WebControls.ListItemCollection
+ NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ Page {ASP.Membre_aspx} System.Web.UI.Page
+ Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
SelectedIndex -1 Integer
SelectedItem Nothing System.Web.UI.WebControls.ListItem
SelectedValue "" String
Site Nothing System.ComponentModel.ISite
+ Style {System.Web.UI.CssStyleCollection}
System.Web.UI.CssStyleCollection
TabIndex 0 Short
TemplateSourceDirectory "/Volicante" String
ToolTip "" String
UniqueID "Nom_M" String
Visible True Boolean
+ Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
Table "[Membres_Liste]" String
ValCour " " String
- (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Merci encore
Christophe
"Paul Bacelar" a écrit :Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" wrote in message
news:
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID
> mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Bonjour Paul,
Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
faire
ma première affectation.
Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
ou
".UniqueID"
Ce que je cherche c'est : comment, connaissant cette représentation qui
est
fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
puis
je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
?
Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
initialisations de DDL, tout fonctionne comme tu l'indiques.
Après cela se complexifie un peu.
Pour entrer dans le détail voici un peu plus d'explication ...
Je cherche à gérer un nombre quelconque de dropdownlist de façon à
réaliser
un filtre.
Exemple : Nom / prénom / datenaissance ..
Le comportement attendu est le suivant :
- une sélection sur l'une des DDL restreint les valeurs autorisées sur
chacune des autres.
ex une sélection sur le nom restreint l'affichage des prénoms de la même
famille, et l'affichage des dates de naissance.
une autre sélection, sur la date de naissance, restreint l'affichage
des
prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
Pour arriver à cette gestion j'ai créé une structure comme suit :
Structure Liste
Dim DDL As DropDownList 'Les valeurs ...
Dim Table As String 'Le nom de la table contenant
les valeurs
Dim ChampTable As String 'Le nom du champ de la table
contenant ...
Dim ValCour As String 'La valeur courante de la liste
End Structure
J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
liées.
Typiquement :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = DateNaiss_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Date Naissance]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
clstE = cLstLiées
ce qui initialise clstLiées comme indiqué ci-dessous (1)
J'ai, parallèlement, déclaré deux collections de travail me permettant de
gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
clause Where )
ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
clstE.
J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
partir de mes collection de travail)
For Each inst In cLstLiées
...
strItem > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
Maliste.Items.Add(strItem)
...
Next
jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
avec
leurs valeurs respectives.
-------------
Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
changement dans une des DDL.
ces évènements appellent une procédure de filtre :
FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
dont les arguments sont l'index de la liste et la liste dans la collection
correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
(1) )
cette procédure initialise une nouvelle liste "inst2". et modifie les
valeurs (coformément aux attentes)
(si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
tardive")
Les collections sont correctement mises à jour en particulier
clstLiées(1).ddl est correctement modifiée avec les prénoms,
clstLiées(2).ddl
est modifiée avec les bonnes dates de naissance.
Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
----------------------------------------------------------------------------------------------------------------------------
(1)
- clstliées {Length=3} Microsoft.VisualBasic.Collection
(0) "Empty placeholder to adjust for 1 based array" String
- (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Key {Object} Object
- Value {Volicante.Membre.Liste} Object
- [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
ChampTable "[NomFamille]" String
- DDL {System.Web.UI.WebControls.DropDownList}
System.Web.UI.WebControls.DropDownList
AccessKey "" String
+ Attributes {System.Web.UI.AttributeCollection}
System.Web.UI.AttributeCollection
AutoPostBack True Boolean
+ BackColor {System.Drawing.Color} System.Drawing.Color
+ BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ BorderColor {System.Drawing.Color} System.Drawing.Color
BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
+ BorderWidth {System.Web.UI.WebControls.Unit}
System.Web.UI.WebControls.Unit
ClientID "Nom_M" String
+ Controls {System.Web.UI.EmptyControlCollection}
System.Web.UI.ControlCollection
+ ControlStyle {System.Web.UI.WebControls.Style}
System.Web.UI.WebControls.Style
ControlStyleCreated True Boolean
CssClass "" String
DataMember "" String
DataSource Nothing Object
DataTextField "" String
DataTextFormatString "" String
DataValueField "" String
Enabled True Boolean
EnableViewState True Boolean
+ Font {System.Web.UI.WebControls.FontInfo}
System.Web.UI.WebControls.FontInfo
+ ForeColor {System.Drawing.Color} System.Drawing.Color
+ Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
ID "Nom_M" String
+ Items {System.Web.UI.WebControls.ListItemCollection}
System.Web.UI.WebControls.ListItemCollection
+ NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ Page {ASP.Membre_aspx} System.Web.UI.Page
+ Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
SelectedIndex -1 Integer
SelectedItem Nothing System.Web.UI.WebControls.ListItem
SelectedValue "" String
Site Nothing System.ComponentModel.ISite
+ Style {System.Web.UI.CssStyleCollection}
System.Web.UI.CssStyleCollection
TabIndex 0 Short
TemplateSourceDirectory "/Volicante" String
ToolTip "" String
UniqueID "Nom_M" String
Visible True Boolean
+ Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
Table "[Membres_Liste]" String
ValCour " " String
- (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Merci encore
Christophe
"Paul Bacelar" a écrit :
Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" <cpeltier@discussions.microsoft.com> wrote in message
news:1B285C08-7D62-40B2-83EF-CB888A2636DB@microsoft.com...
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID
> mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Bonjour Paul,
Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
faire
ma première affectation.
Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
ou
".UniqueID"
Ce que je cherche c'est : comment, connaissant cette représentation qui
est
fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
puis
je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
?
Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
initialisations de DDL, tout fonctionne comme tu l'indiques.
Après cela se complexifie un peu.
Pour entrer dans le détail voici un peu plus d'explication ...
Je cherche à gérer un nombre quelconque de dropdownlist de façon à
réaliser
un filtre.
Exemple : Nom / prénom / datenaissance ..
Le comportement attendu est le suivant :
- une sélection sur l'une des DDL restreint les valeurs autorisées sur
chacune des autres.
ex une sélection sur le nom restreint l'affichage des prénoms de la même
famille, et l'affichage des dates de naissance.
une autre sélection, sur la date de naissance, restreint l'affichage
des
prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
Pour arriver à cette gestion j'ai créé une structure comme suit :
Structure Liste
Dim DDL As DropDownList 'Les valeurs ...
Dim Table As String 'Le nom de la table contenant
les valeurs
Dim ChampTable As String 'Le nom du champ de la table
contenant ...
Dim ValCour As String 'La valeur courante de la liste
End Structure
J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
liées.
Typiquement :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = DateNaiss_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Date Naissance]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
clstE = cLstLiées
ce qui initialise clstLiées comme indiqué ci-dessous (1)
J'ai, parallèlement, déclaré deux collections de travail me permettant de
gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
clause Where )
ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
clstE.
J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
partir de mes collection de travail)
For Each inst In cLstLiées
...
strItem > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
Maliste.Items.Add(strItem)
...
Next
jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
avec
leurs valeurs respectives.
-------------
Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
changement dans une des DDL.
ces évènements appellent une procédure de filtre :
FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
dont les arguments sont l'index de la liste et la liste dans la collection
correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
(1) )
cette procédure initialise une nouvelle liste "inst2". et modifie les
valeurs (coformément aux attentes)
(si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
tardive")
Les collections sont correctement mises à jour en particulier
clstLiées(1).ddl est correctement modifiée avec les prénoms,
clstLiées(2).ddl
est modifiée avec les bonnes dates de naissance.
Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
----------------------------------------------------------------------------------------------------------------------------
(1)
- clstliées {Length=3} Microsoft.VisualBasic.Collection
(0) "Empty placeholder to adjust for 1 based array" String
- (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Key {Object} Object
- Value {Volicante.Membre.Liste} Object
- [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
ChampTable "[NomFamille]" String
- DDL {System.Web.UI.WebControls.DropDownList}
System.Web.UI.WebControls.DropDownList
AccessKey "" String
+ Attributes {System.Web.UI.AttributeCollection}
System.Web.UI.AttributeCollection
AutoPostBack True Boolean
+ BackColor {System.Drawing.Color} System.Drawing.Color
+ BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ BorderColor {System.Drawing.Color} System.Drawing.Color
BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
+ BorderWidth {System.Web.UI.WebControls.Unit}
System.Web.UI.WebControls.Unit
ClientID "Nom_M" String
+ Controls {System.Web.UI.EmptyControlCollection}
System.Web.UI.ControlCollection
+ ControlStyle {System.Web.UI.WebControls.Style}
System.Web.UI.WebControls.Style
ControlStyleCreated True Boolean
CssClass "" String
DataMember "" String
DataSource Nothing Object
DataTextField "" String
DataTextFormatString "" String
DataValueField "" String
Enabled True Boolean
EnableViewState True Boolean
+ Font {System.Web.UI.WebControls.FontInfo}
System.Web.UI.WebControls.FontInfo
+ ForeColor {System.Drawing.Color} System.Drawing.Color
+ Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
ID "Nom_M" String
+ Items {System.Web.UI.WebControls.ListItemCollection}
System.Web.UI.WebControls.ListItemCollection
+ NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
+ Page {ASP.Membre_aspx} System.Web.UI.Page
+ Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
SelectedIndex -1 Integer
SelectedItem Nothing System.Web.UI.WebControls.ListItem
SelectedValue "" String
Site Nothing System.ComponentModel.ISite
+ Style {System.Web.UI.CssStyleCollection}
System.Web.UI.CssStyleCollection
TabIndex 0 Short
TemplateSourceDirectory "/Volicante" String
ToolTip "" String
UniqueID "Nom_M" String
Visible True Boolean
+ Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
Table "[Membres_Liste]" String
ValCour " " String
- (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
Microsoft.VisualBasic.Collection.KeyValuePair
Merci encore
Christophe
"Paul Bacelar" a écrit :Comme en Java, en C# une variable référence une référence.
Donc
TaDDLOriginal = TaDDLCopie.
--
Paul Bacelar
"cpeltier" wrote in message
news:
> Bonsoir à tous,
>
> Ce soir je sèche sur une question d'affectation.
>
> Voilà, je manipule des dropdownlist, et cours des traitements je suis
amené
> à travailler sur une DDL "copie" de ma DDL initiale.
> (copie, c'est à dire strictement identique dans la fenêtre espion ...)
> En fait une affectation Copie = ID de la DDL.
>
> Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
fin
> j'aimerais réaffecter la copie à la DDL initiale.
> l'affectation inverse ...
>
> Comment faire sachant que dans ma copie j'ai effectivement le bon ID
> mais
> que je ne sais pas me servir de cette chaîne pour faire qqch comme
> ID = copie ( affectation à l'objet initial de la DDL copie)
>
> Merci d'avance de vos réponses
>
Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" a écrit dans le message de
news:
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem > > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" wrote in message
>> news:
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>
Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" <cpeltier@discussions.microsoft.com> a écrit dans le message de
news: 6933FE25-0435-4817-B4E7-E7D5F376B0EB@microsoft.com...
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem > > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" <cpeltier@discussions.microsoft.com> wrote in message
>> news:1B285C08-7D62-40B2-83EF-CB888A2636DB@microsoft.com...
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>
Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" a écrit dans le message de
news:
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" , ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem > > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste} Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" wrote in message
>> news:
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>
Bonjour Julien
Merci de ta réponse. Je viens de vérifier l'exécution du code et je
confirme
que la valeur Length de clstliées prend les valeurs suivantes au cours de
l'éxécution.
+ clstliées {Length=1} Microsoft.VisualBasic.Collection
+ clstliées {Length=2} Microsoft.VisualBasic.Collection
+ clstliées {Length=3} Microsoft.VisualBasic.Collection
Mais n'ayant que peu de bases théoriques ( j'y travaille mais il est
difficile de trouver des ouvrages clairs et complets :-) ) je suis preneur
de
tout ce qui peut améliorer mon code.
Ceci dit, le comportement est identique. mêmes résultats dans les DDL.
Concernant les autres points, j'ai effectivement créé les DDL à partir du
designer.
Pour le code j'ai effectivement un module util.vb pour les opérateurs
communs.
En attendant ( la nuit porte parfois conseil ...) j'ai inséré le code
suivant dans "filtrer valeurs"
maListe = CType(FindControl(inst2.DDL.ID), DropDownList)
maListe.Items.Clear()
For cpt = 0 To inst2.DDL.Items.Count - 1
maListe.Items.Add(inst2.DDL.Items(cpt))
Next
ce qui permet d'afficher mes valeurs modifiées.
Je ne suis que partiellement satisfait, j'ai un peu l'impression d'avoir
du
code de sauvage ...
Cordialement
"Julien Bakmezdjian [MS]" a écrit :Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" a écrit dans le message
de
news:
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de
> maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" ,
> ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une
> référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de
> mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la
> même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table
> contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la
> liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les
> listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant
> de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans
> la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM
> et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset
> à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem >> > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour
> chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la
> collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs
> "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste}
> Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" wrote in message
>> news:
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je
>> > suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion
>> > ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à
>> > la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>
Bonjour Julien
Merci de ta réponse. Je viens de vérifier l'exécution du code et je
confirme
que la valeur Length de clstliées prend les valeurs suivantes au cours de
l'éxécution.
+ clstliées {Length=1} Microsoft.VisualBasic.Collection
+ clstliées {Length=2} Microsoft.VisualBasic.Collection
+ clstliées {Length=3} Microsoft.VisualBasic.Collection
Mais n'ayant que peu de bases théoriques ( j'y travaille mais il est
difficile de trouver des ouvrages clairs et complets :-) ) je suis preneur
de
tout ce qui peut améliorer mon code.
Ceci dit, le comportement est identique. mêmes résultats dans les DDL.
Concernant les autres points, j'ai effectivement créé les DDL à partir du
designer.
Pour le code j'ai effectivement un module util.vb pour les opérateurs
communs.
En attendant ( la nuit porte parfois conseil ...) j'ai inséré le code
suivant dans "filtrer valeurs"
maListe = CType(FindControl(inst2.DDL.ID), DropDownList)
maListe.Items.Clear()
For cpt = 0 To inst2.DDL.Items.Count - 1
maListe.Items.Add(inst2.DDL.Items(cpt))
Next
ce qui permet d'afficher mes valeurs modifiées.
Je ne suis que partiellement satisfait, j'ai un peu l'impression d'avoir
du
code de sauvage ...
Cordialement
"Julien Bakmezdjian [MS]" a écrit :
Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" <cpeltier@discussions.microsoft.com> a écrit dans le message
de
news: 6933FE25-0435-4817-B4E7-E7D5F376B0EB@microsoft.com...
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de
> maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" ,
> ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une
> référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de
> mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la
> même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table
> contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la
> liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les
> listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant
> de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans
> la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM
> et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset
> à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem >> > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour
> chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la
> collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs
> "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste}
> Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" <cpeltier@discussions.microsoft.com> wrote in message
>> news:1B285C08-7D62-40B2-83EF-CB888A2636DB@microsoft.com...
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je
>> > suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion
>> > ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à
>> > la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>
Bonjour Julien
Merci de ta réponse. Je viens de vérifier l'exécution du code et je
confirme
que la valeur Length de clstliées prend les valeurs suivantes au cours de
l'éxécution.
+ clstliées {Length=1} Microsoft.VisualBasic.Collection
+ clstliées {Length=2} Microsoft.VisualBasic.Collection
+ clstliées {Length=3} Microsoft.VisualBasic.Collection
Mais n'ayant que peu de bases théoriques ( j'y travaille mais il est
difficile de trouver des ouvrages clairs et complets :-) ) je suis preneur
de
tout ce qui peut améliorer mon code.
Ceci dit, le comportement est identique. mêmes résultats dans les DDL.
Concernant les autres points, j'ai effectivement créé les DDL à partir du
designer.
Pour le code j'ai effectivement un module util.vb pour les opérateurs
communs.
En attendant ( la nuit porte parfois conseil ...) j'ai inséré le code
suivant dans "filtrer valeurs"
maListe = CType(FindControl(inst2.DDL.ID), DropDownList)
maListe.Items.Clear()
For cpt = 0 To inst2.DDL.Items.Count - 1
maListe.Items.Add(inst2.DDL.Items(cpt))
Next
ce qui permet d'afficher mes valeurs modifiées.
Je ne suis que partiellement satisfait, j'ai un peu l'impression d'avoir
du
code de sauvage ...
Cordialement
"Julien Bakmezdjian [MS]" a écrit :Bonjour,
Ce que vous décrivez est assez complexe et surprenant... Par exemple, ce
bloc de code :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
ne devrait PAS vous permettre de stocker des données différentes dans
cLstLiées(0) et cLstLiées(1)... En effet :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe) // cLstLiées(0) contient
maintenant une référence vers maListe. cLstLiées(0).DDL contient Nom_M
maListe.DDL = Prénom_M // maListe.DDL contient maintenant
Prénom_M. cLstLiées(0) contient donc aussi Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Il faudrait plutôt utiliser :
maListe.DDL = Nom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[NomFamille]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
maListe = new Liste
maListe.DDL = Prénom_M
maListe.Table = "[Membres_Liste]"
maListe.ChampTable = "[Prénom]"
maListe.ValCour = " "
cLstLiées.Add(maListe)
Vos DDLs Prénom_M et DateNaiss_M, comment sont-elles crées ? Depuis le
designer .aspx ? Ou en dynamique avec des RenderControl ? Tant que vous
pouvez accéder aux variables Prénom_M et DateNaiss_M, il ne devrait pas y
avoir de problème... Er ces variables sont normalement accessibles depuis
tout code présent dans la classe de votre formulaire Web... Avez-vous du
code dans une autre classe ?
Cordialement,
Julien Bakmezdjian
"cpeltier" a écrit dans le message
de
news:
> Bonjour Paul,
>
> Je suis ok sur le principe et, c'est bien sur lui que je m'appuie pour
> faire
> ma première affectation.
> Par contre au retour, je ne dispose plus de la référence de
> maDDLoriginal
> mais uniquement de sa représentation dans "maDDLcopie.id" ,
> ".ClientId"
> ou
> ".UniqueID"
>
> Ce que je cherche c'est : comment, connaissant cette représentation qui
> est
> fournie dans maDDLcopie sous forme de string (maDDLcopie.ID "Nom_M"),
> puis
> je passer à Nom_M = maddlcopie ? avec ici Nom_M qui est est une
> référence
> ?
>
> Je comprend d'autant moins, les difficultées rencontrées, que lors de
> mes
> initialisations de DDL, tout fonctionne comme tu l'indiques.
> Après cela se complexifie un peu.
>
> Pour entrer dans le détail voici un peu plus d'explication ...
>
> Je cherche à gérer un nombre quelconque de dropdownlist de façon à
> réaliser
> un filtre.
> Exemple : Nom / prénom / datenaissance ..
>
> Le comportement attendu est le suivant :
> - une sélection sur l'une des DDL restreint les valeurs autorisées sur
> chacune des autres.
>
> ex une sélection sur le nom restreint l'affichage des prénoms de la
> même
> famille, et l'affichage des dates de naissance.
> une autre sélection, sur la date de naissance, restreint l'affichage
> des
> prénoms aux jumeaux. etc ... jusqu'à obtention de l'unicité.
>
> Pour arriver à cette gestion j'ai créé une structure comme suit :
>
> Structure Liste
> Dim DDL As DropDownList 'Les valeurs ...
> Dim Table As String 'Le nom de la table
> contenant
> les valeurs
> Dim ChampTable As String 'Le nom du champ de la table
> contenant ...
> Dim ValCour As String 'La valeur courante de la
> liste
> End Structure
>
> J'ai ensuite rassemblé mes listes dans une collection décrivant les
> listes
> liées.
> Typiquement :
>
> maListe.DDL = Nom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[NomFamille]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = Prénom_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Prénom]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> maListe.DDL = DateNaiss_M
> maListe.Table = "[Membres_Liste]"
> maListe.ChampTable = "[Date Naissance]"
> maListe.ValCour = " "
> cLstLiées.Add(maListe)
> clstE = cLstLiées
>
> ce qui initialise clstLiées comme indiqué ci-dessous (1)
>
> J'ai, parallèlement, déclaré deux collections de travail me permettant
> de
> gérer les listes qui ont fait l'objet d'un choix ( celles qui sont dans
> la
> clause Where )
> ainsi que celle qui restent à renseigner ( clause Select). soit clstM
> et
> clstE.
>
>
> J'initialise alors mes DDL comme suit (après avoir constitué un dataset
> à
> partir de mes collection de travail)
>
> For Each inst In cLstLiées
> ...
> strItem >> > MyDataset.Tables(NumTable).Rows(NumLigne).Item(NumChamp).ToString
> Maliste.Items.Add(strItem)
> ...
> Next
>
> jusqu'ici tous se présente bien. Mes DDL sont correctement renseignées
> avec
> leurs valeurs respectives.
>
> -------------
>
> Ensuite je gère un évènement "SelectedIndexChanged" par DDL, pour
> chaque
> changement dans une des DDL.
> ces évènements appellent une procédure de filtre :
>
> FiltrerValeurs(Nom_M.SelectedIndex, CType(cLstLiées(1), Liste))
>
> dont les arguments sont l'index de la liste et la liste dans la
> collection
> correspondant à la DDL modifiée ( cLstLiées(1) correspond à Nom_M cf
> (1) )
> cette procédure initialise une nouvelle liste "inst2". et modifie les
> valeurs (coformément aux attentes)
> (si je ne passe pas par inst2 j'obtiens une série d'erreurs
> "affectation
> tardive")
> Les collections sont correctement mises à jour en particulier
> clstLiées(1).ddl est correctement modifiée avec les prénoms,
> clstLiées(2).ddl
> est modifiée avec les bonnes dates de naissance.
> Mais je n'arrive pas à repasser à Prénom_M et DateNaiss_M.
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> (1)
>
> - clstliées {Length=3} Microsoft.VisualBasic.Collection
> (0) "Empty placeholder to adjust for 1 based array" String
> - (1) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
> Key {Object} Object
> - Value {Volicante.Membre.Liste} Object
> - [Volicante.Membre.Liste] {Volicante.Membre.Liste}
> Volicante.Membre.Liste
> ChampTable "[NomFamille]" String
> - DDL {System.Web.UI.WebControls.DropDownList}
> System.Web.UI.WebControls.DropDownList
> AccessKey "" String
> + Attributes {System.Web.UI.AttributeCollection}
> System.Web.UI.AttributeCollection
> AutoPostBack True Boolean
> + BackColor {System.Drawing.Color} System.Drawing.Color
> + BindingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + BorderColor {System.Drawing.Color} System.Drawing.Color
> BorderStyle NotSet System.Web.UI.WebControls.BorderStyle
> + BorderWidth {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ClientID "Nom_M" String
> + Controls {System.Web.UI.EmptyControlCollection}
> System.Web.UI.ControlCollection
> + ControlStyle {System.Web.UI.WebControls.Style}
> System.Web.UI.WebControls.Style
> ControlStyleCreated True Boolean
> CssClass "" String
> DataMember "" String
> DataSource Nothing Object
> DataTextField "" String
> DataTextFormatString "" String
> DataValueField "" String
> Enabled True Boolean
> EnableViewState True Boolean
> + Font {System.Web.UI.WebControls.FontInfo}
> System.Web.UI.WebControls.FontInfo
> + ForeColor {System.Drawing.Color} System.Drawing.Color
> + Height {System.Web.UI.WebControls.Unit}
> System.Web.UI.WebControls.Unit
> ID "Nom_M" String
> + Items {System.Web.UI.WebControls.ListItemCollection}
> System.Web.UI.WebControls.ListItemCollection
> + NamingContainer {ASP.Membre_aspx} System.Web.UI.Control
> + Page {ASP.Membre_aspx} System.Web.UI.Page
> + Parent {System.Web.UI.HtmlControls.HtmlForm} System.Web.UI.Control
> SelectedIndex -1 Integer
> SelectedItem Nothing System.Web.UI.WebControls.ListItem
> SelectedValue "" String
> Site Nothing System.ComponentModel.ISite
> + Style {System.Web.UI.CssStyleCollection}
> System.Web.UI.CssStyleCollection
> TabIndex 0 Short
> TemplateSourceDirectory "/Volicante" String
> ToolTip "" String
> UniqueID "Nom_M" String
> Visible True Boolean
> + Width {System.Web.UI.WebControls.Unit} System.Web.UI.WebControls.Unit
> Table "[Membres_Liste]" String
> ValCour " " String
> - (2) {Microsoft.VisualBasic.Collection.KeyValuePair}
> Microsoft.VisualBasic.Collection.KeyValuePair
>
>
> Merci encore
> Christophe
>
> "Paul Bacelar" a écrit :
>
>> Comme en Java, en C# une variable référence une référence.
>> Donc
>> TaDDLOriginal = TaDDLCopie.
>> --
>> Paul Bacelar
>>
>> "cpeltier" wrote in message
>> news:
>> > Bonsoir à tous,
>> >
>> > Ce soir je sèche sur une question d'affectation.
>> >
>> > Voilà, je manipule des dropdownlist, et cours des traitements je
>> > suis
>> amené
>> > à travailler sur une DDL "copie" de ma DDL initiale.
>> > (copie, c'est à dire strictement identique dans la fenêtre espion
>> > ...)
>> > En fait une affectation Copie = ID de la DDL.
>> >
>> > Je manipule ma copie, je lui affecte les valeurs qui vont bien, et à
>> > la
>> fin
>> > j'aimerais réaffecter la copie à la DDL initiale.
>> > l'affectation inverse ...
>> >
>> > Comment faire sachant que dans ma copie j'ai effectivement le bon ID
>> > mais
>> > que je ne sais pas me servir de cette chaîne pour faire qqch comme
>> > ID = copie ( affectation à l'objet initial de la DDL copie)
>> >
>> > Merci d'avance de vos réponses
>> >
>>
>>
>>