Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703

    custom validation control

    ciao a tutti, avrei un problema, nella mia web application sotto una textbox ho creato questo controllo:

    codice:
                           
     <asp:CustomValidator id="CustomValidator1" runat="server" 
              OnServerValidate="CategoryValidate" 
              ControlToValidate="TextBox1" 
              ErrorMessage="Text must be 8 or more characters.">
    </asp:CustomValidator>
    ora.. non capisco come poter richiamarlo da c#.. ho creato una classe
    codice:
     
    public class Validation
    {
        public void CategoryValidate(object source, ServerValidateEventArgs objArgs)
        {
            //miocodice
        }
    
    }
    ora dalla default.aspx se io richiamo la funzione non capisco che oggetti passargli
    Validation valida = new Validation();
    codice:
            
            valida.CategoryValidate(object c;d);
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Manca l'indicazione del linguaggio nel titolo e, da quello che leggo, sei anche nel forum sbagliato.

    Il linguaggio va obbligatoriamente indicato nel titolo della discussione e le discussioni riguardanti il .NET Framework vanno postate nel forum "Visual Basic e .NET Framework".

    Correggo e sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Il quesito riguarda ASP.NET, pertanto va nell'area specifica, in cui suggerisco all'autore della discussione di postare per tutte le problematiche legate a questa tecnologia.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Credo tu abbia complicato un po' le cose, esse sono piu' semplici.
    Ti rispondo in VB scusa, non ho tempo di tradurre:

    codice:
    ASPX
      <asp:TextBox runat="server" ID="tb"></asp:TextBox>
      <asp:CustomValidator runat="server" ControlToValidate="tb" ID="cv" OnServerValidate="valida" ErrorMessage="dato non valido"></asp:CustomValidator>
    
    VB
        Public Sub Valida(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
            If tb.Text = "testovalido" Then
                args.IsValid = True
            Else
                args.IsValid = False
            End If
        End Sub

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ok, anchio ho già fatto così in c#; ma il punto cardine è :
    posso trasferire quella sub in una classe e richiamare quest'ultima?se si, mi potresti fare un esempio?
    grazie

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Nella pagina:
    codice:
        Public Sub Valida(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
            Dim validationClass As New Validation
            validationClass.testodavalidare = tb.Text
            validationClass.CategoryValidate(sender, args)
        End Sub
    Nella cartella App_Code:
    codice:
    Public Class Validation
        Private _testodavalidare As String
    
        Public Property testodavalidare() As String
            Get
                Return _testodavalidare
            End Get
            Set(ByVal value As String)
                _testodavalidare = value
            End Set
        End Property
    
        Public Sub CategoryValidate(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
            If testodavalidare = "testovalido" Then
                args.IsValid = True
            Else
                args.IsValid = False
            End If
        End Sub
    End Class
    Ma sinceramente non ne capisco il motivo...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ecco mi mancava la propietà all'interno della classe!ti ringrazio
    faccio tutto questo perchè ho diversi campi che avranno lo stesso metodo di validazione, in questo modo riduco notevolmente il codice da scrivere;
    però ora mi sorge un dubbio per completare il mio script.. posso recuperare in qualche modo l'id del customcontrol in uso? questo mi serve poi per passare il campo e lavorarlo..

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    se per CustomControl intendi il CustomValidator,

    fai un'altra proprieta' nella classe e dalla pagina la imposti con l'ID del CustomValidator, cosi' come io ho impostato il testo della textbox da validare (tb.text). Dovrebbe essere sender.ID


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.