Problème radiobuttonlist avec selectedvalue vide
Bonjour à tous,
Je rencontre un problème avec ma page qui contient un radiobuttonlist.
J'ai dans un updatePanel plusieurs champs :
- nom, champ texte
- description, champ texte
- lien vers la documentation officielle, champ texte
- pénibilité, checkbox
- gravité, radiobuttonlist
- CMR, checkbox
- fait partie de la fiche d'exposition, checkbox
- un bouton pour modifier les champs ci-dessus
Ces champs sont remplis lorsque l'on choisis un risque dans une liste déroulante et qui est alimentée par une base de données.
Le problème vient de ma radiobuttonlist. Que je laisse l'élément coché ou que je le change, mon selectedvalue reste null.
Voici le code pour remplir mon dataSet qui concerne la gravité :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Public Function dataSetGravite() As DataSet
base = New BaseDeDonnees
base.connexionBDD()
Dim reqGravite As String = "SELECT gra_id, gra_nom FROM gravite ORDER BY gra_id ASC"
System.Diagnostics.Debug.Print("Requète : " & reqGravite)
Dim cmdGravite As New OracleCommand(reqGravite)
cmdGravite.CommandType = CommandType.Text
cmdGravite.Connection = base.chaineConnexion()
Dim adapt As OracleDataAdapter = New OracleDataAdapter
adapt.SelectCommand = cmdGravite
Dim mesGravites As DataSet = New DataSet
adapt.Fill(mesGravites)
base.fermerBDD()
Return mesGravites
End Function |
Voici ma méthode qui affiche la gravité :
Code:
1 2 3 4 5 6 7 8 9
| Public Sub afficherModifierGravite()
Dim monDataSet As DataSet = New DataSet
monDataSet.Clear()
monDataSet = mesMethodesRisques.dataSetGravite
cbModifierGraviteRisque.DataSource = monDataSet
cbModifierGraviteRisque.DataValueField = "GRA_ID"
cbModifierGraviteRisque.DataTextField = "GRA_NOM"
cbModifierGraviteRisque.DataBind()
End Sub |
Et voici le code qui est dans mon bouton modifier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| Protected Sub btnModifierRisque_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnModifierRisque.Click, cbModifierGraviteRisque.SelectedIndexChanged
'On vide les labels d'erreurs
lblErreurModifierNomRisque.Text = ""
'On récupère les ID des listes
monIdGroupeRisques = listeGroupeRisques.SelectedValue
monIdRisque = listeRisques.SelectedValue
'On regarde s'il y a une modification du nom métier
If txtModifierNomRisque.Text <> lblNomRisque.Text Then
'On regarde si le champ modifier nom métier existe deja
If mesMethodesRisques.rechercheRisque(txtModifierNomRisque.Text, monIdGroupeRisques) = True Then
lblErreurModifierNomRisque.Text = "Ce nom de risque existe déjà !"
End If
End If
'Si le champ modifier n'est pas vide
If (txtModifierNomRisque.Text <> "") And lblErreurModifierNomRisque.Text = Nothing Then
Dim penible, cmr, ficheExposition As Integer
'On transforme les variables des checkbox TRUE et FALSE en booléen
If cbModifierPenibleRisque.Checked Then
penible = 1
Else
penible = 0
End If
If cbModifierCMRRisque.Checked Then
cmr = 1
Else
cmr = 0
End If
If cbModifierFicheExpositionRisque.Checked Then
ficheExposition = 1
Else
ficheExposition = 0
End If
System.Diagnostics.Debug.Print("Nom : " & txtModifierNomRisque.Text)
System.Diagnostics.Debug.Print("Descriptif : " & txtModifierDescriptifRisque.Text)
System.Diagnostics.Debug.Print("Lien : " & txtModifierLienDocumentationRisque.Text)
System.Diagnostics.Debug.Print("Penible : " & penible)
If cbModifierGraviteRisque.SelectedValue = Nothing Then
System.Diagnostics.Debug.Print("Gravite : null")
End If
System.Diagnostics.Debug.Print("CMR : " & cmr)
System.Diagnostics.Debug.Print("Fiche : " & ficheExposition)
'On modifie le métier
mesMethodesRisques.modifierRisque(txtModifierNomRisque.Text, txtModifierDescriptifRisque.Text, txtModifierLienDocumentationRisque.Text, penible, cbModifierGraviteRisque.SelectedValue, cmr, ficheExposition, listeRisques.SelectedValue)
'On affiche la liste
afficherRisque()
'On met le focus sur le champ sélectionné
listeRisques.Items.FindByValue(recupIdRisque()).Selected = True
'On met à jour les différents labels
lblNomRisque.Text = txtModifierNomRisque.Text
lblDescriptifRisque.Text = txtModifierDescriptifRisque.Text
lblLienDocumentationOfficielle.Text = txtModifierLienDocumentationRisque.Text
If penible = 1 Then
cbRisquePenible.Checked = True
Else
cbRisquePenible.Checked = False
End If
cbRisqueGravite.Checked = True
cbRisqueGravite.Text = mesMethodesRisques.rechercheGravite(cbModifierGraviteRisque.SelectedValue)
If cmr = 1 Then
cbRisqueCMR.Checked = True
Else
cbRisqueCMR.Checked = False
End If
If ficheExposition = 1 Then
cbRisqueFicheExposition.Checked = True
Else
cbRisqueFicheExposition.Checked = False
End If
End If
End Sub |
Une partie du code qui modifie mes champs pour la partie modifier quand je change l'index de ma liste déroulante de risques :
'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| On met les données dans les champs de textes pour modifier les données
txtModifierNomRisque.Text = readerDetailsRisque("ris_nom").ToString
txtModifierDescriptifRisque.Text = readerDetailsRisque("ris_descriptif").ToString
txtModifierLienDocumentationRisque.Text = readerDetailsRisque("ris_lien_documentation").ToString
If readerDetailsRisque("ris_penible").ToString = "1" Then
cbModifierPenibleRisque.Checked = True
Else
cbModifierPenibleRisque.Checked = False
End If
cbModifierGraviteRisque.Items.FindByValue(readerDetailsRisque("gra_id").ToString).Selected = True
If readerDetailsRisque("ris_cmr").ToString = "1" Then
cbModifierCMRRisque.Checked = True
Else
cbModifierCMRRisque.Checked = False
End If
If readerDetailsRisque("ris_fiche_exposition").ToString = "1" Then
cbModifierFicheExpositionRisque.Checked = True
Else
cbModifierFicheExpositionRisque.Checked = False
End If
'On affiche non renseigné si des labels sont vides
If readerDetailsRisque("ris_descriptif").ToString = Nothing Then
lblDescriptifRisque.Text = "Non renseigné"
txtModifierDescriptifRisque.Text = "Non renseigné"
End If
If readerDetailsRisque("ris_lien_documentation").ToString = Nothing Then
lblLienDocumentationOfficielle.Text = "Non renseigné"
txtModifierLienDocumentationRisque.Text = "Non renseigné"
End If |
je n'arrive pas comprendre pourquoi je ne récupère pas de valeur. J'ai un autre formulaire qui permet d'ajouter un risque et qui contient également un radiobuttonlist et le selectedvalue fonctionne très bien.
Pouvez-vous m'aider ?
EDIT : Je viens de me rendre compte que je n'avais pas mis ma méthode afficherModifierGravite dans mon if not postback ... désolé du post inutile