HEEEEEEEEEEELP ME : Pasage de TABLEAU entre 2 formulaire
sg_kan
Messages postés20Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention21 mai 2004
-
13 mai 2004 à 11:32
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
15 mai 2005 à 01:21
AIDEZ MOI SVP
Bonjour je voudrait savoir comment passer en argument d'une page a une autre un tableau ARRAYLIST
Pour les string et autre je fait :
dans la premiere page :
Response.Redirect("Page2.aspx?x="+ValX);
et pour récupérer le champ dans la (Page2.aspx )je fait :
Request.QueryString["x"];
Alors pour passer un ARRAYLIST je n'arrive pas a comprendre comment faire
ni pour l'envoie ni pour la récupération
Merci de me répondre
Bye
Nb: je ne veut pas utiliser de sessions car ce n'est pas optimiser comme solution
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 13 mai 2004 à 18:33
Je viens d'y repenser dans la methode que je t'ai donné tout à l'heure je l'avais fait vite fait et meme un peu trop vite fait car je me suis pas preoccupé de la reception :p
donc revoici le code :
dim Query as string
for each s as string in Al
Query &= s & ";"
next
response.redirect("page2.aspx?Query=" & query )
pour la reception
dim query as string = request.querystring("query")
Dim result as string() ' je sais jamais ou je dois mettre les parenthese d'habitude c'est vs.net qui me gere ca, mais je l'ai pas d'ouvert la :p
fmajet
Messages postés8Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention15 mai 2005 14 mai 2005 à 19:25
Merci pour ton aide
Effectivement j'ai un warning de conversion implicte de type qui saute
avec ta methode.
Mais j'ai encore un souci , je viens d'identifier le pb
En fait dans la premiere methode juste avant
Sesssion("montableau")=Montableau
je mets
Panel2.Controls.Add(Montableau)
Quand je le vire ca marche bien, j'arrive a recuperer mon tableau sinon je recupere un tableau vide.
Je ne comprends pas vraiment pourquoi ?
J'ai l'intuition qu'il y a une histoire de clonage de mon tableau a utiliser mais
je ne saisis pas pourquoi.
fmajet
Messages postés8Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention15 mai 2005 14 mai 2005 à 19:47
Sub 1
Panel2.Controls.Add(mytable)
Session(
"tabl") = mytable1
end sub
sub 2
mytable2 =
CType(Session(
"tabl"), WebControls.Table)
end sub
Si je mets Panel2.Controls.Add(mytable) en commentaire je recupere bien mon tableau dans la procedure 2, si je ne le fait pas je recupere un tableau vide
fmajet
Messages postés8Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention15 mai 2005 14 mai 2005 à 19:47
pardon c'est
Sub 1
Panel2.Controls.Add(mytable1)
Session("tabl") = mytable1
end sub
sub 2
mytable2 =
CType(Session(
"tabl"), WebControls.Table)
end sub
Si je mets Panel2.Controls.Add(mytable) en commentaire je recupere bien mon tableau dans la procedure 2, si je ne le fait pas je recupere un tableau vide
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 15 mai 2005 à 00:03
Waouhhh !
Alors la tu m'en apprend, je ne savais pas que les types object étaient passé par défaut en reference, alors la je n'ai aucune idée de comment résoudre ca, mais je vais me documenter, essayer de comprendre comment tout ceci fonctionne, et tenter de te répondre :)
En tout cas tient moi au courant si tu trouves une autre solution que de recréer ton tableau.
Idées con, tu peux te servir des mots clés, ByVal et ByRef ?
fmajet
Messages postés8Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention15 mai 2005 15 mai 2005 à 00:18
Oui j'ai pensé a mettre BYVal table as object mais ca ne change rien .Les object sont by reference par default
J'ai remarqué la premiere fois quand j'appelais une fonction avec un argument de type object et systematiquement en sortie de cette function mon argument avait changé de valeur
En fait dans ma fonction je faisais un truc du style
variable locale=mon argument d'ou d'enormes bugs
en faisant variable locale=mon argument.clone ca a marché nickel
een sortie de fonction mon argument n'avait pas changé
Mais ces deux variables etaient de types Object qui contient la methode clone .Dans le cas du web control je seche .
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 15 mai 2005 à 01:21
J'ai testé avec une classe et ca passe bien les params par reference, ca me revient maintenant en mémoire.
Pour ce qui est de la fonction clone, il faut que la classe implements ICloneable et c'est loin d'etre le cas de tout le monde, il me semble que c'est expliqué dans l'excellent bouquin de Richard Clark : "Au coeur de Visual Basic .net" mais j'arrive pas à retrouver la page :p
mais tient moi au courant :) j'essayerais de voir ca demain :p et surement relire le bouquin de Richard bientot