Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Validare Checkbox

  1. #1

    Validare Checkbox

    Ho fatto qualche ricerca e ho trovato questo tipo di soluzione:
    codice:
    <asp:Button ID="InviaBtn" runat="Server" Text="Registrami" PostBackUrl="~/ConfermaRegistrazione.aspx" />
               
       <asp:CheckBox ID="CheckBox1" runat="server" Text="check" />
                  
     <asp:customvalidator ID="validator" runat="server" OnServerValidate="ServerValidation" ErrorMessage="Impossibile continuare"/>
    e nel code-Behind:
    codice:
        Sub ServerValidation(ByVal source As Object, ByVal args As ServerValidateEventArgs)
            'args.IsValid = (CheckBox1.Checked = True)
            args.IsValid = Me.CheckBox1.Checked
    
        End Sub
    Il problema è che funziona solo se elimino la PostBackUrl, in tal caso mi viene visualizzato correttamente l'errore nel caso non sia spuntata la checkbox. Ma se lascio la PostBackUrl mi passa sempre alla pagina di conferma registrazione. C'è qualche cosa che ignoro???

  2. #2
    che tipo di controllo devi fare?
    se ti serve solamente controllare check o no-check puoi usare il controllo standard di validazione

    codice:
    <asp:RequiredFieldValidator id="valRequired" runat="server" ControlToValidate="textbox1"
        ErrorMessage="* You must enter a value into textbox1" Display="dynamic">*
    </asp:RequiredFieldValidator>

  3. #3
    Si ma io devo validare una CkeckBox, non una textbox. Non posso utilizzare RequiredFieldValidator per validare la checkbox.
    Cmq mi serve solo che, se non è ceccata la checkbox(per la privacy) non vada avanti.

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    http://aspnet.4guysfromrolla.com/articles/092006-1.aspx
    in fondo alla pagina scarica la dll...
    I got the remedy

  5. #5
    http://aspnet.4guysfromrolla.com/articles/092006-1.aspx
    in fondo alla pagina scarica la dll...
    Grazie, ma mi chiedo... posso mai utilizzare una DLL per validare una checkbox? non esiste una metodo più semplice?

  6. #6
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    è una componente ed è per quello che ha la dll....
    è normale.
    il codice che c'è su quella pagina produce quella dll...
    I got the remedy

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="convalidare checkbox.aspx.vb" Inherits="CorsoApogeo_wrox_comandi_server_e_convalida_convalidare_checkbox" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Pagina senza titolo</title>
        <link href="../../../stili/Styles.css" rel="stylesheet" type="text/css" />
    
        <script language="javascript" type="text/javascript">
    <!--
    
    function selezionare_checkbox(source, arguments)
    {
    	arguments.IsValid = document.getElementById("CheckBox1").checked;	
    }
    //-->
        </script>
    
    </head>
    <body>
        <h3>Convalida checkbox</h3>
        <form id="form1" runat="server">
            <asp:CheckBox ID="CheckBox2" runat="server" Text="Abilita javascript per il controllo di validità" Checked="true" AutoPostBack="true" />
            
    
    
                <asp:CheckBox ID="CheckBox1" runat="server"></asp:CheckBox>
                <asp:Button ID="Button1" runat="server" Text="Button"></asp:Button>
            </p>
            <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Per continuare devi selezionare il checkbox" ClientValidationFunction="selezionare_checkbox">Per continuare devi selezionare il checkbox</asp:CustomValidator>
            
    
    
                <asp:Label ID="Label1" runat="server" EnableViewState="false"></asp:Label>
            </p>
        </form>
    </body>
    </html>
    codice:
    Option Strict On
    
    Partial Class CorsoApogeo_wrox_comandi_server_e_convalida_convalidare_checkbox
        Inherits System.Web.UI.Page
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Inserire qui il codice utente necessario per inizializzare la pagina
        End Sub
    
        Private Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
            args.IsValid = Me.CheckBox1.Checked
        End Sub
    
        Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'forza la validazione ti tutti i controlli
            Me.Validate()
            If Not Me.IsValid() Then
                Dim ctrl As BaseValidator
                Dim errorCount%
                For Each ctrl In Me.Validators
                    If Not ctrl.IsValid Then errorCount += 1
                Next
                Me.Label1.Text = "CONVALIDA SERVER: ci sono " & (errorCount) & " errori"
            End If
        End Sub
    
        Protected Sub CheckBox2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
            Dim ck As CheckBox = DirectCast(sender, CheckBox)
            Me.CustomValidator1.EnableClientScript = ck.Checked
            Me.Label1.Text = ""
        End Sub
    End Class
    Pietro

  8. #8
    Sarà che non riesco a spiegarmi
    Il codice gentilmente postato da pietro09, diciamo pure che funziona, ma come faccio a fare il redirect ad un'altra pagina?cioè la ConfermaRegistrazione.aspx, nel mio caso.
    Se aggiungo, infatti, nel Bottone la PostBackURL e ci clicco, il controllo sul CheckBox non viene fatto!!!
    è una componente ed è per quello che ha la dll....
    è normale.
    il codice che c'è su quella pagina produce quella dll...
    Vorrei tenere l'uso della Dll come ultima analisi, perché se la cosa è già complicata così... sarebbe ancora più difficile andare a ricercare eventuali problemi di una Dll non mia. Grazie comunque per l'intervento.

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    a questo punto non so più che dire. Ho provato a mettere:

    codice:
        Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'forza la validazione ti tutti i controlli
            Me.Validate()
            If Not Me.IsValid() Then
                Dim ctrl As BaseValidator
                Dim errorCount%
                For Each ctrl In Me.Validators
                    If Not ctrl.IsValid Then errorCount += 1
                Next
                Me.Label1.Text = "CONVALIDA SERVER: ci sono " & (errorCount) & " errori"
            Else
                Me.Response.Redirect("altrapagina.aspx")
            End If
    
        End Sub
    e il redirerct viene fatto. O sono io che non ho capito? :master:
    Pietro

  10. #10
    codice:
    Me.Response.Redirect("altrapagina.aspx")
    forse era questo che mancava. Adesso sembrerebbe funzionare. Non appena clicco sul bottone, però, mi da "Errore nella visualizzazione della pagina"(tipo quando c'è un problema di javascript). La cosa più "grave" è che mi mette nella barra degli indirizzi questo:
    codice:
    http://localhost/Sito/Registrazione.aspx?__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTE5Nzg0MDUyODJkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBSNjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJENoZWNrQm94MQ3gEu2PRYlAucGMYK3I%2Fuh1Zsr0&ctl00%24ContentPlaceHolder1%24nome=&ctl00%24ContentPlaceHolder1%24tel=&ctl00%24ContentPlaceHolder1%24cognome=&ctl00%24ContentPlaceHolder1%24fax=&ctl00%24ContentPlaceHolder1%24indirizzo=&ctl00%24ContentPlaceHolder1%24email=&ctl00%24ContentPlaceHolder1%24cap=&ctl00%24ContentPlaceHolder1%24password=&ctl00%24ContentPlaceHolder1%24citt%C3%A0=&ctl00%24ContentPlaceHolder1%24confermapassword=&ctl00%24ContentPlaceHolder1%24provincia=&ctl00%24ContentPlaceHolder1%24Button1=Registrami&__EVENTVALIDATION=%2FwEWDgLxksP1BwL%2BiZa6CgK7ufHwCQLCnL7wAQLp06jfBQLVyLTyCwKX%2BK6hAgL44b3JCALIoPPsBAKEvbLvBwLOz4OnDwK06fGqBwL%2BzqO2BAKA4sljw5ckadgArD0Y56S3R6xj4T5kn1Q%3D
    Questo succede nel caso in cui non inserisca qualche campo obbligatorio, mentre se li inserisco tutti, mi va nella seconda pagina normalmente.
    Come posso evitare questa cosa?
    Ciao e grazie mille!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.