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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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