Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Syd Barrett
    Guest

    asp:customvalidator --> ma client side?

    Una buona giornata a chi mi saprà aiutare....
    Ho la necessità di fare un controllo sulla lunghezza della stringa inserita in un campo text, eh ho risolto la cosa mettendo un customvalidator

    codice:
    <asp:customvalidator id="controllaserver" runat="server" Display="Dynamic" ControlToValidate="TxtID" ErrorMessage="hai sbagliato l'id(serverside)" OnServerValidate="Controlla"></asp:customvalidator>
    che si appoggia ad una subrutine che, serverside, esegue il controllo in questo modo:

    codice:
      Sub Controlla(ByVal obj As Object, ByVal Args As ServerValidateEventArgs)
            If Len(Args.Value) < 6 Or Len(Args.Value) > 8 Then
                Args.IsValid = False
            Else
                Args.IsValid = True
            End If
        End Sub
    Chiaramente perché il controllo venga effettuato, ho bisogno di processare la pagina.... così a differenza dei required e degli altri controlli, solo dopo averla "spedita" so se il campo era stato compilato correttamente o meno.
    Ora, io ho la necessità di saperlo prima, e quindi devo eseguire questo controllo clientside (non con javascript).

    Si può fare?
    Se sì, come?

    Grazie e buona giornata a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    immagino che impostare a true la proprietà AutoPostBack della TextBox non ti serva.

    Hey hey, my my Rock and roll can never die!

  3. #3
    Syd Barrett
    Guest
    non capisco cosa intendi...

  4. #4
    Utente di HTML.it L'avatar di Alendar
    Registrato dal
    May 2002
    Messaggi
    169
    che io sappia l'unico modo di validare un controllo lato client è di usare uno script lato client, e mi sa che JavaScript è l'unico e forse migliore dei linguaggi clientside...

    ASP.NET permette se non sbaglio di far generare automaticamente uno script per i Browser con supporto DHTML impostando un attributo del tag validator... anche se in questo momento non mi ricordo quale...

  5. #5
    Syd Barrett
    Guest
    Originariamente inviato da Alendar
    ASP.NET permette se non sbaglio di far generare automaticamente uno script per i Browser con supporto DHTML impostando un attributo del tag validator... anche se in questo momento non mi ricordo quale...
    ecco, appunto, era proprio quello che mi serviva....
    è sostanzialmente quello che fa, credo, con gli altri controlli

    -compare
    -range
    -regularExpression
    -requiredField

    per lo meno, visual Studio.Net usando questi controlli genera automaticamente uno script che fa il controllo lato client, ma col Custom non fa niente, e mi sembra che il custom sia l'unica via per controllare la lunghezza della stringa inserita.

    Come faccio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    <ASP:TextBox Id="TxtID" Runat="Server" Autopostback="True">

    non ti garantisco nulla....

    Hey hey, my my Rock and roll can never die!

  7. #7
    Utente di HTML.it L'avatar di Alendar
    Registrato dal
    May 2002
    Messaggi
    169
    l'attributo che dicevo è

    EnableClientSicript = "true"

    ...non potevi usare un Rangevalidator?

  8. #8
    Syd Barrett
    Guest
    Originariamente inviato da zampa28
    <ASP:TextBox Id="TxtID" Runat="Server" Autopostback="True">

    non ti garantisco nulla....
    ho provato così ma non ho risolto niente, se non che adesso ignora gli altri controlli non custom e per la lunghezza non controlla nemmeno più server side a meno che non spedisca 2 volte di fila

  9. #9
    Syd Barrett
    Guest
    Originariamente inviato da Alendar
    l'attributo che dicevo è

    EnableClientSicript = "true"

    ...non potevi usare un Rangevalidator?
    con enableclientscript invece mi dice che è impossibile trovare l'elemento...

    non potevo usare il rangevalidator perché non controlla la lunghezza di una stringa, bensì controlla che il suo contenuto sia compreso in un intervallo (per esempio se l'intervallo è 0-99 57 va bene ma 157 no, o se l'intervallo è a-m puoi scrivere h ma non n)

  10. #10
    Syd Barrett
    Guest
    ho trovato questo:

    Osservazioni
    Utilizzare il controllo CustomValidator per specificare una funzione di convalida definita dall'utente per un controllo di input. Il controllo CustomValidator e il controllo di input del quale viene eseguita la convalida sono controlli separati. In questo modo è possibile controllare la posizione di visualizzazione del messaggio di convalida.

    I controlli di convalida eseguono sempre la convalida sul server. Inoltre, presentano un'implementazione completa per il lato client che consente ai browser che supportano il linguaggio DHTML (quali Internet Explorer 4.0 e versioni successive) di eseguire la convalida sul client. La convalida sul lato client migliora il processo di convalida mediante la verifica dell'input dell'utente prima dell'invio al server. Tale operazione consente il rilevamento degli errori sul client, prima dell'invio del form, e di conseguenza evita il percorso di andata e ritorno delle informazioni necessario per la convalida sul lato server.

    Per creare una funzione di convalida sul lato server, specificare un gestore per l'evento ServerValidate che esegue la convalida. Per accedere alla stringa del controllo di input da convalidare, utilizzare la proprietà Value del controllo ServerValidateEventArgs passata al gestore eventi come parametro. Il risultato della convalida viene quindi archiviato nella proprietà IsValid dell'oggetto ServerValidateEventArgs.

    Per creare una funzione di convalida per il lato client, aggiungere innanzi tutto la funzione di convalida per il lato server descritta in precedenza. Aggiungere quindi alla pagina ASP.NET (file ASPX) la funzione di script di convalida per il lato client.

    Se si utilizza VBScript, la funzione deve essere nel form:

    Sub ValidationFunctionName(source, arguments)

    Se si utilizza JScript, la funzione deve essere nel form:

    function ValidationFunctionName(source, arguments)
    Utilizzare la proprietà ClientValidationFunction per specificare il nome della funzione di script di convalida per il lato client associata al controllo CustomValidator. Poiché la funzione di script viene eseguita sul client, è necessario che sia scritta in un linguaggio supportato dal browser di destinazione, quale VBScript oppure JScript.

    Analogamente a quanto avviene per la convalida sul lato server, per accedere alla stringa del controllo di input da convalidare utilizzare la proprietà Value del parametro arguments. Per restituire il risultato della convalida, impostare la proprietà IsValid del parametro arguments.

    Attenzione Durante la creazione di una funzione di convalida sul lato client, assicurarsi di includere anche la funzionalità di convalida sul lato server. Se si crea una funzione di convalida sul lato client senza una funzione di convalida sul lato server corrispondente, è possibile che del codice dannoso riesca ad insinuarsi senza essere sottoposto alla convalida.
    È possibile utilizzare più controlli di convalida con un solo controllo di input per convalidare criteri diversi. È possibile ad esempio applicare più controlli di convalida a un controllo TextBox che consente agli utenti di specificare il numero di oggetti da aggiungere a un carrello degli acquisti. È possibile utilizzare un controllo CustomValidator per essere sicuri che il valore specificato sia inferiore alla quantità di articoli in magazzino e un controllo RequiredFieldValidator per essere sicuri che gli utenti immettano un valore nel controllo TextBox.

    Nota Se il controllo di input è vuoto, non verrà chiamata alcuna funzione di convalida e la convalida verrà eseguita correttamente. Utilizzare un controllo RequiredFieldValidator per richiedere all'utente di immettere dati nel controllo di input.

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.