Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Validatori particolari

  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    Validatori particolari

    Ciao a tutti,
    avrei bisogno di creare 2 validatori che controllino 2 campi.
    il primo deve contenere una data nel formato YYYYMMDD
    (quindi se l'utente inserisce 20060912 va bene; se mette 12/09/2006 non va bene).

    L'altro deve contenere una stringa composta da:

    valore1;valore2;valore3

    ovvero delle stringhe alfanumeriche separate tra loro da ;
    Come è possibile fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    lato server o client? :master:
    Pietro

  3. #3
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    E' indifferente, cmq meglio lato server.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    guarda se la prima va bene
    codice:
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
        {
            try
            {
                string value = args.Value;
                if (value.Length != 8) throw new Exception(this.CustomValidator1.ErrorMessage);
                DateTime dt = new DateTime(int.Parse(value.Substring(0, 4)), int.Parse(value.Substring(4, 2)), int.Parse(value.Substring(6, 2)));
            }
            catch (Exception ex)
            {
                args.IsValid = false;
            } 
            
        }
    
        protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
        {
            try
            {
                string value = args.Value;
                char[] c = {';'};
                string[] s = value.Split(c, StringSplitOptions.RemoveEmptyEntries);
                if (s.Length != 3) throw new Exception(this.CustomValidator2.ErrorMessage);
    
            }
            catch (Exception ex)
            {
                args.IsValid = false;
            } 
    
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.Validate();
        }
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Deve essere una data nel  formato YYYYMMDD" OnServerValidate="CustomValidator1_ServerValidate" ValidateEmptyText="true"></asp:CustomValidator>
    
            
    
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="Deve essere tre stringhe alfanumeriche separata da ;" OnServerValidate="CustomValidator2_ServerValidate" ValidateEmptyText="true"></asp:CustomValidator>
    
            
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
        </form>
    </body>
    </html>
    Pietro

  5. #5
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Interessante, ora lo provo.
    E per quanto riguarda l'altro validatore?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ciupaz
    Interessante, ora lo provo.
    E per quanto riguarda l'altro validatore?
    ho aggiornato quello di prima
    Pietro

  7. #7
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Per eseguire validazioni particolari puoi sviluppare una classe che eredita da BaseValidator e fare l'override del metodo EvaluateIsValid(). Io ho implementato classi che validano date, numeri etc...

  8. #8
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Perfetto, grazie mille Pietro.

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da edaje
    Per eseguire validazioni particolari puoi sviluppare una classe che eredita da BaseValidator e fare l'override del metodo EvaluateIsValid(). Io ho implementato classi che validano date, numeri etc...
    e dai, metti un esempietto che me lo copiazzo nella mia libreria
    Pietro

  10. #10
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Validazione se il campo è intero

    public class IntFieldValidator : BaseValidator
    {
    private bool IsInt(string dato)
    {
    try
    {
    int.Parse(dato);
    return true;
    }
    catch
    {
    return false;
    }
    }
    protected override bool EvaluateIsValid()
    {
    if (GetControlValidationValue(this.ControlToValidate) .Length > 0)
    {
    return IsInt(GetControlValidationValue(this.ControlToVali date));
    }
    else
    {
    return true;
    }
    }
    }

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 © 2026 vBulletin Solutions, Inc. All rights reserved.