Passage de valeurs à l'intérieur d'un control web formview/gridview

equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 9 juil. 2007 à 08:11
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 9 juil. 2007 à 09:06
Bonjour à tous,
j'ai passé pas mal de temps sur ce forum et je remercie tous ceux qui y contribuent.
Etant donné que j'ai passé la nuit (si,si) à m'arracher les cheveux sur le passage de valeurs sur un formview récalcitrant, je me permets d'exposer ma solution ...

On prend l'exemple suivant :

un panel qui dispose d'un textbox1 (dateAppel), un textbox2 (nomUser) et une DropDownList1 (secteurGéo), des formview de gestion des appel (questions/réponses) (pourquoi plusieurs ? On peut avoir plusieurs questions sur un même appel ...) mais on ne va parler ici que du premier, FormView1, un GridView1 qui va chercher dans une bd sql le userID du nom placé dans le textbox2 pour le rapatrier ensuite dans le FormView1 via la selection de la ligne.

passage de la date et du combo:

' Passage des données dans le formview liste appel

Dim toto1, toto2
As TextBox
Dans le page_Load
' la combo secteurGeo:
toto2 = FormView1.FindControl(

"SecteurTB1") ' l'ID du du textbox dans le formview qui reçoit la valeur (mais on pourrait avoir un dropdownlist comme receveur).
toto2.Text = DropDownList1.SelectedValue
' le texbox1 date :
toto1 = FormView1.FindControl(

"DateTB1") 'dateTB1 est l'ID du textbox qui reçoit la valeur dans leformview
toto1.Text = textbox1.Text
' le texbox2 nom : On va passer la valeur dans le gridview pour effectuer la recherche puis aller lire le userID (positionné en 1ère colonne) de la table ramenée par le gridview.

Dans l'event de selection du gridview (GridView1_SelectedIndexChanged1
)

Dim toto3
As TextBox
toto = FormView1.FindControl(
"userIDTB") 'le textbox du formview qui reçoit la valeur ID 

Dim row
As GridViewRow = GridView1.SelectedRow ' instanciation de row (ligne sélectionnée du gridview)
toto3.Text = row.Cells(1).Text 'le "1" signifie la première colonne (celulle de la ligne, en fait) de la row.

A NOTER que le passage de valeur n'est effectif que sur le template actif.
Dans mon cas, je suis en mode insert. Donc il remplie le textbox userIDTB situé dans le template insertItemTemplate.

Je crois que j'ai rien oublié ...
Bon code à tous.
 

   

1 réponse

equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
9 juil. 2007 à 09:06
Bon ben en me baladant, j'ai croisé un mail qui expose les Pb d'accès en code behind aux controls web des formviews.
Une des réponse était de créer une classe d'objetdatasource qui servira de "proxy".
Je pense en effet que c'est l'approche la plus sensée.
Mais vu que je suis jeune dans le dèv (mais juste dans le dèv ...) je vois pas trop comment l'imaginer.
Si quelqu'un a une idée, voir une solution ..
Bonne journée à tous!
0
Rejoignez-nous