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é :
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
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
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 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
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
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
'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.
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
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
Partager