Condividi tramite


Procedura: convalidare in base a un valore specifico per i controlli server ASP.NET

Aggiornamento: novembre 2007

Grazie ai controlli di convalida ASP.NET, è possibile eseguire la convalida dei dati immessi dall'utente in base a un valore specifico utilizzando gli operatori logici, ad esempio specificando che i dati immessi dall'utente devono corrispondere a una data successiva al 1 gennaio 1950 o a un valore integer maggiore o uguale a zero. In alternativa, è possibile specificare che i dati immessi dall'utente debbano essere confrontati con un valore appartenente a un altro controllo.

Nota sulla sicurezza:

I dati immessi dall'utente nelle pagine Web possono includere script client potenzialmente dannoso. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite script.

Per eseguire la convalida in base a un valore specifico

  1. Aggiungere un controllo CompareValidator alla pagina e impostare le proprietà riportate di seguito.

    Proprietà

    Descrizione

    ControlToValidate

    ID del controllo per il quale è necessario fornire un valore.

    ErrorMessage, Text, Display

    Proprietà che consentono di specificare il testo e la posizione dell'errore o degli errori che verranno visualizzati se l'utente ignora il controllo. Per informazioni dettagliate, vedere Procedura: controllare la visualizzazione dei messaggi di errore di convalida per i controlli server ASP.NET.

  2. Impostare il valore in base al quale eseguire il confronto, mediante le proprietà seguenti:

    Proprietà

    Descrizione

    ValueToCompare

    - oppure -

    ControlToCompare

    Espressione immessa come stringa. Per eseguire un confronto con un valore costante, impostare la proprietà ValueToCompare. Per eseguire un confronto con il valore di un altro controllo, impostare la proprietà ControlToCompare sull'ID di tale controllo. Il controllo CompareValidator confronta i dati immessi dall'utente rispetto a una proprietà specificata dal ValidationPropertyAttribute dell'altro controllo. Se si impostano entrambe le proprietà ValueToCompare e ControlToCompare, ControlToCompare avrà la precedenza.

    Type

    Tipo di dati dei due valori di cui eseguire il confronto. I tipi vengono specificati utilizzando l'enumerazione ValidationDataType, che consente di utilizzare il nome di tipo String, Integer, Double, Date o Currency. I valori vengono convertiti nel tipo indicato prima del confronto. Per ulteriori informazioni, vedere Procedura: convalidare in base a un tipo di dati per i controlli server ASP.NET.

    Operator

    Confronto da utilizzare. Specificare un operatore utilizzando uno dei valori seguenti definiti nell'enumerazione ValidationCompareOperator:

    Nota:

    Quando la convalida viene eseguita in base a un altro controllo, i valori non validi di questo vengono ignorati e la convalida riesce. Per informazioni dettagliate, vedere Risultati di convalida di casi particolari per i controlli ASP.NET lato server.

  3. Aggiungere un test nel codice per verificarne la validità. Per informazioni dettagliate, vedere Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codice.

    Nell'esempio di codice riportato di seguito viene illustrato un controllo TextBox convalidato utilizzando un controllo CompareValidator:

    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" 
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" 
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    

    Nell'esempio di codice riportato di seguito viene illustrato un controllo CompareValidator che confronta i dati immessi dall'utente con il valore di un altro controllo. La pagina consente agli utenti di effettuare prenotazioni in un hotel. Il controllo di convalida verifica che l'utente non immetta una data di partenza precedente a quella di arrivo. In un'applicazione reale, la data di partenza sarà richiesta e convalidata anch'essa come data.

    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" 
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" 
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    

Vedere anche

Concetti

Tipi di convalida per i controlli ASP.NET lato server

Altre risorse

Convalida dei controlli ASP.NET