Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Estendere TextBox per implementarvi controlli su dati in INPUT

    Ciao a tutti...come da titolo sto cercando personalizzarmi una classe che derivi da TextBox e che implementi i controlli sui caratteri in INPUT come apice singolo ecc.. ecco il codice(non fateci troppa attenzione perchè è ben lontano dal funzionare):
    codice:
    Imports System
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    
    Namespace Common.WebControls
        Public Class TextBox
            ' classe TextBox che implementa 
            ' i controlli necessari sui valori di INPUT
            Inherits System.Web.UI.WebControls.TextBox
            Dim m_unescapedText As String
            Public Property unescapedText() As String
                Get
                    Return m_unescapedText
                End Get
                Set(ByVal Value As String)
                    m_unescapedText = Value
                End Set
            End Property
    
            Public Overrides Property Text() As String
                Get
                    If (Me.unescapedText Is Nothing) Then
                        ' primo get dopo salvataggio
                        Me.unescapedText = Utils.Utils.unescapeOutputVal(MyBase.Text)
                        Return MyBase.Text
                    Else
                        ' secondo get dopo salvataggio
                        Utils.Utils.escapeInputVal(unescapedText())
                    End If
                End Get
                Set(ByVal Value As String)
                    Me.unescapedText = Value
                    MyBase.Text = Utils.Utils.unescapeOutputVal(Value)
                End Set
            End Property
        End Class
    End Namespace
    il mio problema è che non riesco a "carpire" con quale logica implementare la classe qui sopra per raggiungere lo scopo, ho tentato di modificare le Property Text (Get e Set) in modo da ottenere il valore già sottoposto ad escape con Get, ho tentato un po' tutte le strade ma non mi sovviene nulla. Qualcuno mi saprebbe aiutare? è giorni che mi scervello ma non ho ancora le conoscenze adeguate per risolvere il problema. Inoltre ringrazio vivamente chi mi chiarirà PERCHè ho dovuto compilare in .dll (su root/bin) sia la mia classe custom TextBox sia la classe che quest'ultima utilizza per effettuare l'escape dei valori solo la prima volta, e non invece ogni volta che apporto delle modifiche ... :master:
    Ciao
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    prova a vedere questo mio codice:

    http://forum.europeanwebhost.com/viewtopic.php?t=281

    in linea di massima devi crearti una proprietà pubblica di tipo booleano se vuoi.

    quando la setti a TRUE fai il controllo del testo e restituisci la stringa letta con la relativa modifica.

  3. #3

    finalmente...

    ci ho imbroccato...funziona. risolve gli escape. per i dati in input sottopone il contenuto del textbox ad escape, per i dati in output naturalmente fa l'unescape...
    classe TextBox
    codice:
    Imports System
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    
    Namespace Common.WebControls
        Public Class TextBox
            ' classe TextBox che implementa 
            ' i controlli necessari sui valori di INPUT
            Inherits System.Web.UI.WebControls.TextBox
    
            Private m_escapedText As String
    
            Public Property escapedText() As String
                Get
                    Return m_escapedText
                End Get
                Set(ByVal Value As String)
                    m_escapedText = Value
                End Set
            End Property
    
            Public Overrides Property Text() As String
                Get
                    If (Me.escapedText Is Nothing) Then
                        ' primo get dopo salvataggio
                        Me.escapedText = Utils.Utils.escapeInputVal(MyBase.Text)
                        Return MyBase.Text
                    Else
                        ' secondo get dopo salvataggio
                        Return Me.escapedText
                    End If
                End Get
                Set(ByVal Value As String)
                    Me.escapedText = Value
                    MyBase.Text = Utils.Utils.unescapeOutputVal(Value)
                End Set
            End Property
        End Class
    End Namespace
    classe utils
    codice:
    Namespace Common.Utils
        Public Class Utils
            Public Shared Function getTimeStamp() As String
                Return System.DateTime.Now.ToString("ddMMyyyyhhmmss")
            End Function
            Public Shared Function escapeInputVal(ByVal s As String) As String
                ' tolgo l'apice singolo che generea errore SQL
                s = s.Replace("'", "''")
                Return s
            End Function
            Public Shared Function unescapeOutputVal(ByVal s As String) As String
                ' riconverto i caratteri sottposti ad escape
                s = s.Replace("''", "'")
                Return s
            End Function
        End Class
    End Namespace

    ciao grassie!!!
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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.