[déplacé VB.NET -> ASP.NET] gestion de checkbox [Résolu]

Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
- - Dernière réponse : nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 7 oct. 2009 à 15:25
comment alterner les coches de checkbox?de sorte que quans 1 est coché l'autre se decoche?
je fais alterner les true et les false mais sa ne marche pas.
ChkAdmin_O.Checked = False
ChkAdmin_N.Checked = True
ChkDev_O.Checked = False
ChkDev_N.Checked = True
ChkFact_O.Checked = False
ChkFact_N.Checked = True


Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
3
Merci
L'exemple n'est pas testé c'est pour montré qu'il possible de mettre plusieurshandlers sur la meme methode.

Mais c'est juste pour info car les groupname doivent corrigés seuls le probleme.

Bon dev.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
169
Date d'inscription
jeudi 24 juillet 2003
Dernière intervention
17 août 2010
0
Merci
If CheckBox1.Checked = True then CheckBox2.Checked = False

Mets cette ligne lors de l'événement CheckBox1_Checked(...)...
Commenter la réponse de cs_Papymuzo
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
salut,

c'est plutôt le rôle du bouton radio, ce que tu veux faire

3 frames ou picturebox (pour enlever l'effet visuel)
2 optionbuttons par container

aucun code


sinon dans chaque event click =>
lautre_check(de la paire).value = not lautre_check(de la paire).value


[hr]
Commenter la réponse de PCPT
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
0
Merci
<?xml version="1.0" encoding="iso-8859-1"?>
<%@ Page Language="VB" Debug="true" AutoEventWireup="false" %>
<%@ Import Namespace="System.Data.SqlClient" %>


<script runat="server">
    Private Sub Page_Load()
        
        If (IsNumeric(Session("id_user"))) Or (IsNumeric(Session("id_agent"))) Then
         
            Dim cn As New SqlConnection()
            cn.ConnectionString = ConfigurationSettings.AppSettings("base")
            cn.Open()

            Dim CommandText As String
           
            CommandText = "SELECT user, user.adresse_mail, password, contact, num_tel1, num_tel2, num_tel3, num_fax, administrateur_client, devis, facture  , contact.adresse_mail FROM  wts_user, contact WHERE id_user='" & Request("utilisateur") & "' AND contact.adresse_mail = user.adresse_mail"
            
            Dim cmd As New SqlCommand(CommandText, cn)
            Dim utilisateur As String = Request("utilisateur")
            
            Session("ModifUser") = "0"
            
            If (Request("utilisateur") <> "") Then
                Session("ModifUser") =  Request("utilisateur")  
                myReader = cmd.ExecuteReader()
               
                If (Not (myReader.HasRows)) Then
                    'on vide les zones de saisie
                    tb_user.Text = ""
                    tb_MDP.Text = ""
                    tb_nom.Text = ""
                    tb_tel1.Text = ""
                    tb_tel2.Text = ""
                    tb_tel3.Text = ""
                    tb_fax.Text = ""
                    ChkAdmin_O.Checked = False
                    ChkAdmin_N.Checked = True
                    ChkDev_O.Checked = False
                    ChkDev_N.Checked = True
                    ChkFact_O.Checked = False
                    ChkFact_N.Checked = True

                Else
                    ' Récupération des données de l'agent pour mis à jour
                    myReader.Read()
                    tb_user.Text = myReader.GetString(1)
                    tb_MDP.Text = myReader.GetString(2)
                    tb_nom.Text = myReader.GetString(3)
                    tb_tel1.Text = myReader.GetString(4)
                    If(myReader.IsDBNull(5))then
                    tb_tel2.Text = ""
                    Else
                    tb_tel2.Text = myReader.GetString(5)
                    end if
                     If(myReader.IsDBNull(6))then
                    tb_tel3.Text = ""
                    Else
                    tb_tel3.Text = myReader.GetString(6)
                    end if
                    If(myReader.IsDBNull(7))then
                    tb_fax.Text = ""
                    Else
                   tb_fax.Text = myReader.GetString(7)
                    end if
                    
                
                    If (myReader.GetBoolean(8) = 1) Then
                        ChkAdmin_O.Checked = True
                        ChkAdmin_N.Checked = False
                    Else
                        ChkAdmin_O.Checked = False
                        ChkAdmin_N.Checked = True
                    End If
                         
                    
                    If (myReader.GetBoolean(9) = 1) Then
                        ChkDev_O.Checked = True
                        ChkDev_N.Checked = False
                    Else
                        ChkDev_O.Checked = False
                        ChkDev_N.Checked = True
                    End If
                    If (myReader.GetBoolean(10) = 1) Then
                        ChkFact_O.Checked = True
                        ChkFact_N.Checked = False
                    Else
                        ChkFact_O.Checked = False
                        ChkFact_N.Checked = True
                    End If
                End If
            
                If Not cn Is Nothing AndAlso cn.State = Data.ConnectionState.Open Then
                    cn.Close()
                    cn = Nothing
                End If
            Else
                Response.Redirect("login.aspx")
            End If
        End If
    End Sub
    
    Protected Sub ajout_user(ByVal sender As Object, ByVal e As System.EventArgs)
        
        Dim UpdateText, UpdateText1, InsText, InsText1 As String
        Dim j, BitAdmin, BitFacture, BitDevis As Integer
        
        If (ChkAdmin_N.Checked = True) Then
            BitAdmin = 0
        Else
            BitAdmin = 1
        End If
        
        If (ChkFact_N.Checked = True) Then
            BitFacture = 0
        Else
            BitFacture = 1
        End If
        If (ChkDev_N.Checked = True) Then
            BitDevis = 0
        Else
            BitDevis = 1
        End If
        
        ' Connection à la base de données
        Dim cn As New SqlConnection()
        dim CommandText2 As string
        cn.ConnectionString = ConfigurationSettings.AppSettings("WTS_ExtraSQL")
        cn.Open()

        If (Session("ModifUser") <> "0") Then
            Dim sEmail As string
            'Session("utilisateur") = utilisateur
            CommandText2 "SELECT adresse_mail FROM wts_user WHERE id_user " & Session("ModifUser")
            Response.Write(CommandText2)
            Dim cmd2 As New SqlCommand(CommandText2, cn) 
            Dim myReader2 As SqlDataReader
            myReader2 = cmd2.ExecuteReader()
            sEmail = myReader2.GetString(0)
            
            UpdateText = "UPDATE contact SET contact='" & tb_nom.Text & "', num_tel1='" & tb_tel1.Text & "', num_tel2='" & tb_tel2.Text & "', num_tel3='" & tb_tel3.Text & "',num_fax='" & tb_fax.Text & "',adresse_mail='" & tb_user.Text & "'  WHERE wts_contact.adresse_mail = '" & sEmail & "'"
            
            UpdateText1 = "UPDATE user SET password='" & toMD5(tb_MDP.Text) & "', adresse_mail='" & tb_user.Text & "', administrateur_client='" & BitAdmin & "',devis='" & BitDevis & "',facture='" & BitFacture & "' WHERE id_user='" & Session("ModifUser") & "'"
            Response.Write(UpdateText1+"
")
            Dim Upd1 As New SqlCommand(UpdateText, cn)
            Try
                j = Upd1.ExecuteNonQuery()
            Catch ex As Exception
            End Try
            Upd1 = Nothing
            
            Dim Upd As New SqlCommand(UpdateText1, cn)
            Try
                j = Upd.ExecuteNonQuery()
            Catch ex As Exception
            End Try
            Upd = Nothing

        Else
            'Ecriture dans la table 
            
            InsText1 = "INSERT INTO user (id_societe, adresse_mail, password,   administrateur_client, devis, facture ) VALUES ('" & Session("id_societe") & "','" & tb_user.Text & "','" & toMD5(tb_MDP.Text) & "','" & BitAdmin & "', '" & BitDevis & "' ,'" & BitFacture & "' )"
            InsText = "INSERT INTO wts_contact (adresse_mail, contact, num_tel1, num_tel2, num_tel3, num_fax ) VALUES ('" & tb_user.Text & "', '" & tb_nom.Text & "','" & tb_tel1.Text & "','" & tb_tel2.Text & "','" & tb_tel3.Text & "','" & tb_fax.Text & "')"
                  
            Dim InsSQL2 As New SqlCommand(InsText, cn)
            Dim x As Integer
            Try
                x = InsSQL2.ExecuteNonQuery()
                Response.Write(" enregistré avec succes" + "
")
            Catch ex As Exception
                Response.Write(ex)
            End Try
            InsSQL2 = Nothing
            
            Dim InsSQL As New SqlCommand(InsText1, cn)
            Try
                x = InsSQL.ExecuteNonQuery()
                Response.Write(" enregistré avec succes" + "
")
            Catch ex As Exception
                Response.Write(ex)
            End Try
            InsSQL = Nothing
            
        End If
        
        If Not cn Is Nothing AndAlso cn.State = ConnectionState.Open Then
            cn.Close()
            cn = Nothing
        End If
        
        'Response.Redirect("modification_user.aspx")
        
    End Sub
    
    Protected Sub ChkFact_O_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkFact_O.CheckedChanged
        If (ChkFact_O.Checked = True) Then
            ChkFact_N.Checked = False
        Else
            ChkFact_N.Checked = True
            ChkFact_O.Checked = False
        End If
    End Sub

    Protected Sub ChkFact_N_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkFact_N.CheckedChanged
        If (ChkDev_N.Checked = True) Then
            ChkFact_O.Checked = False
        Else
            ChkFact_N.Checked = False
            ChkDev_O.Checked = True
        End If

    End Sub

    Protected Sub ChkDev_O_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkDev_O.CheckedChanged
        If (ChkDev_O.Checked = True) Then
            ChkDev_N.Checked = False
        Else
            ChkDev_N.Checked = True
            ChkDev_O.Checked = False
        End If
    End Sub

    Protected Sub ChkDev_N_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkDev_N.CheckedChanged
        If (ChkDev_N.Checked = True) Then
            ChkDev_O.Checked = False
        Else
            ChkDev_N.Checked = True
            ChkDev_N.Checked = False
        End If
    End Sub

    Protected Sub ChkAdmin_O_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkAdmin_O.CheckedChanged
        If (ChkAdmin_O.Checked = True) Then
            ChkAdmin_N.Checked = False
        Else
            ChkAdmin_N.Checked = True
            ChkAdmin_O.Checked = False
        End If
    End Sub

    Protected Sub ChkAdmin_N_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChkAdmin_N.CheckedChanged
        If (ChkAdmin_N.Checked = True) Then
            ChkAdmin_O.Checked = False
        Else
            ChkAdmin_O.Checked = True
            ChkAdmin_N.Checked = False
        End If
    End Sub

    Protected Sub btnretour_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Response.Redirect("modification_user.aspx")
    End Sub
    
    Public Function toMD5(ByVal strText As String) As String
        Dim buffer As Byte() = System.Text.Encoding.Default.GetBytes(strText)
        Try
            Dim check As System.Security.Cryptography.MD5CryptoServiceProvider
            check = New System.Security.Cryptography.MD5CryptoServiceProvider
            Dim somme As Byte() = check.ComputeHash(buffer)
            Dim ret As String = ""
 
            For Each a As Byte In somme
                If (a < 16) Then
                    ret += "0" + a.ToString("X")
                Else
                    ret += a.ToString("X")
                End If
            Next
            Return ret
        Catch exc As Exception
            Throw exc
        End Try
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    End Sub



sinon PCPT je ne comprend pas bien ce que tu veux dire.peut-tu etre plus clair?
Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Commenter la réponse de sergeszebe
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
plus clair comment

une checkbox sert dans une série à donner une ou plusieurs valeurs
tu n'en veux qu'une (3 séries de 2)

c'est donc le contrôle optionbutton qu'il faut utiliser, non la checkbox


attention aux catégories, tu codes avec la syntaxe VB.NET oui, mais en ASP.NET!

topic déplacé vers le site approprié

[hr]
Commenter la réponse de PCPT
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
0
Merci
j'ai remplacé les chekbox par des Radiobutton
Mais ça ne change rien quand je click sur un il ne decoche pas l'autre!
pourrais-tu encore m'aider stp?
au depart je les mets tous sur false

Protected Sub Radio_O_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Radio_O.CheckedChanged
        
        If (Radio_O.Checked = True) Then
            Radio_N.Checked = False
        Else
            Radio_N.Checked = False
            Radio_O.Checked = True
        End If

    End Sub

    Protected Sub Radio_N_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Radio_N.CheckedChanged
        If (Radio_N.Checked = True) Then
            Radio_O.Checked = False
        Else
            Radio_O.Checked = True
            Radio_O.Checked = False
        End If
    End Sub
Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Commenter la réponse de sergeszebe
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
... le change de l'un déclenche le change de l'autre

j'ai indiqué : PAS BESOIN DE CODE

mets les à false par défaut si tu veux (au chargement), mais ne traite pas l'évènement
Commenter la réponse de PCPT
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
0
Merci
Je suis désolé PCPT de te deranger mais dans ma boite a outils je ne vois pas de frames ou picturebox.
je travail avec Visual web developpeur 2008.
et la valeur coché ira dans ma table user dans les champs admon(oui/non)etc...
peux-tu SPT me donner la conduite a tenir!
a force de pas trouvé je comprend de moins en moins ! pertubé par 100 tentatives.
Merci.j'avais mis false au lancement depuis le debut

Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Commenter la réponse de sergeszebe
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
j'avais proposé ces containers quand ta question était en VB.NET

pour çà que les forums sont hiérarchisés

en ASP.NET je pencherai pour.. le PANEL ? :)
Commenter la réponse de PCPT
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
0
Merci
Salut,

Pour gérer les groups en asp.net
c'est la propriété GroupName
Les buttons radio ayant le meme groupname sera donc en exclusion mutuel.

NB: il faut eviter de faire des operation comme

if (radio_o.checked = true) then
radio_n.checked = false
else
radio_n.checked = false
radio_o.checked = true
end if

en ASP.NET ca fait des operations de postpack (rechargement) sur la page
il est preferable d'utilisé une librairie comme ms ajax librairie cote client ou jquery pour faire ce type d'operation.


NB2 : (juste pour information car ce que propose PCPT repond a la question)

protected sub chkadmin_o_checkedchanged(byval sender as object, byval e as system.eventargs) handles chkadmin_o.checkedchanged
if (chkadmin_o.checked = true) then
chkadmin_n.checked = false
else
chkadmin_n.checked = true
chkadmin_o.checked = false
end if
end sub

protected sub chkadmin_n_checkedchanged(byval sender as object, byval e as system.eventargs) handles chkadmin_n.checkedchanged
if (chkadmin_n.checked = true) then
chkadmin_o.checked = false
else
chkadmin_o.checked = true
chkadmin_n.checked = false
end if
end sub


Peut etre reduit a

protected sub chk_checkedchanged(byval sender as object, byval e as system.eventargs) handles chkadmin_n.checkedchanged,chkadmin_o.checkedchanged
dim check as checkbox = DirectCast(sender,Checkbox)

' inversion de l'etat
check.checked = not check.checked
end sub
Commenter la réponse de nhervagault
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
0
Merci
salut,j'ai remplacé le code par le chk_checkedchanged
mais l'erreur signale:'ChkAdmin_O_CheckedChanged' n'est pas un membre de 'ASP.
j'essaye avec le panel.
et je vous tien informé du resultat


Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Commenter la réponse de sergeszebe
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Dernière intervention
8 octobre 2009
0
Merci
salut.
Maintenant,j'ai choisit 3 RadioButtonList.
avec des boutons oui,non.
je voudrais remplir une table(Droit(nom,admin,eleve,prof)) par true ou false apres click sur le bouton valider.de sorte que a un nom on sache s'il est admin prof ou eleve.
comment je peut gerer ça dans ma page load? avec sql server?
Merci


Pour trouver sans chercher,il faut avoir longtemps cherché sans trouver.
Commenter la réponse de sergeszebe
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
0
Merci
C'est pas une table mais 3 qu'il te faut.

Fonctionnalite (id, nom)
Profil(id,nom)
Droit(id_fonct,id_profil)

Si dans profil c'est coché sinon pas.

C'est de la representation 3NF.

Apres c'est a toi de voir.

Pour la gestion tu peux utiliser sql server et lire les données dans le page load (attention au not ispostback )
Commenter la réponse de nhervagault

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.