Rafraichir plusieur control

cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 10 août 2006 à 16:28
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 11 août 2006 à 09:07
Bonjour,

J'ai essayé de mettre un double "listener" sur une methode.

Voilà ce que j'ai fait:

Protected

Sub generalBox_CheckedChanged(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles chkBox.CheckedChanged, DropDown.SelectedIndexChanged

Lorsque je change ma valeur dans ma dropDownList, il entre de la Sub, mais lorsque je fait :
Dim myValue As String = dropDown.selectedValue, il prend toujours la première valeur.

Comment puis-je procéder pour pouvoir récupérer cette valeur?

Au cas ou ce que j'ai fait est stupide...
[En d'autre termes, je dois rafraichir la dropDownList quand la valeur de la checkBox est changée, ainsi que rafraichir une TxtBox quand l'index de ma dropDownList est changé]

Merci d'avance pour vos conseils et bonne fin d'après-midi à tous

 ElpenS

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 août 2006 à 21:52
Pour que ca fonctionne il ne faut pas rebinder ton contrôle lors du postback mais utiliser le viewstate. Pour cela rien de plus simple dans le page_load tu fais un if page.ispostback then mondrop.datasource = ... mondrop.databind() sinon il va logiquement te prendre la premiere value

<hr />Cyril - MVS - MCP
0
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
11 août 2006 à 08:28
J'ai testé mais cela ne fonctionne pas...


Voilà comment je procède:


If Page.IsPostBack
Then
   If generalBox.Checked =
True
Then
   'Set the datasource to General
   DropDownPNum.DataSource = SqlDataGenPNumber
   DropDownPNum.DataBind()
   ...
     

Else
   'set the datasource to company
   DropDownPNum.DataSource = SqlDataPNumber
   DropDownPNum.DataBind()

End
If

Protected
Sub
DropDownPNum_SelectedIndexChanged(
ByVal
sender
As

Object
,
ByVal
e
As
System.EventArgs)
Handles DropDownPNum.SelectedIndexChanged
   

   Dim getErrorDescCmd As

New
OleDbCommand(
"SELECT Txt FROM [Table] WHERE Number ='"& DropDownProcNum.SelectedValue &
"'",  myConn)

   myConn.Open()
   errDescBox.Text = getErrorDescCmd.ExecuteScalar
   myConn.Close()

End
Sub

Mais comme avant, la valeur de mon drop est tjrs la première

Merci

 ElpenS
0
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
11 août 2006 à 09:07
Alors j'ai un peu changé de stratégie :




Protected
Sub generalBox_CheckedChanged(...)
If generalBox.Checked = True

Then


   'Set the datasource to General
   DropDownPNum.DataSource = SqlDataGenPNumber
   DropDownPNum.DataBind()
   ...     





Else


   'set the datasource to company
   DropDownPNum.DataSource = SqlDataPNumber
   DropDownPNum.DataBind()
End

If




ProtectedSub DropDownPNum_SelectedIndexChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles

DropDownPNum.SelectedIndexChanged


...



Mon seul soucis à présent est de pouvoir l'afficher dès le démarrage, mais cela devrai jouer. Merci pout tes conseils





 ElpenS
0
Rejoignez-nous