Ciao a tutti,
ho letto qualche post ma non ci ho capito nulla... come faccio ad accedere alla proprietà text di una label contenuta in un controllo utente dalla pagina che lo contiene?
Grazie Elisa
Ciao a tutti,
ho letto qualche post ma non ci ho capito nulla... come faccio ad accedere alla proprietà text di una label contenuta in un controllo utente dalla pagina che lo contiene?
Grazie Elisa
Dal controllo utente, esponi una proprietà che faccia da "ponte" tra l'esterno e il controllo contenuto che vuoi modificare.
mi aiuti a capire meglio? (scusami ma sono ignorante in merito...)
Si, allora. Nel tuo controllo utente hai un'istanza privata che fa riferimento alla label, giusto? Ok, devi creare una property che faccia da tramite tra le proprietà della label (che è privata, e non visibile dall'esterno) e la pagina (che vede le proprietà del controllo utente, non dei controlli contenuti).
Quindi, mettiamo che la label è lblLabel
HTH, tKcodice:Public Property LabelTitle() As String Get Return lblLabel.Text End Get Set(ByVal Value As String) lblLabel.Text = Value End Set End Property
mmm capito... cosa nuova... mai fatta...
Ora provo e ti faccio sapere, grazie.
Mi sa che mi perdo qualcosa per strada!
Dunque, nel mio controllo utente c'è: Public Class login : Inherits System.Web.UI.UserControl..... ecc....
Poi ho creato la property come mi hai suggerito.
Nella pagina aspx, invece, il controllo utente è inserito e ha id=Login1. Nel codebehind della pagina ho messo:
Protected WithEvents Login1 As Login
.....
Login1.LabelTitle = "..."
Uso VS per cui quando ho scritto Login1. e ho visto che ricosceva LabelTitle pensavo di essere sulla buona strada... e invece no!![]()
Se mando in esecuzione mi dice:
Tipo 'login' non definito.
Senza la sezione della property il controllo va? Fallo funzionare prima senza questa funzione, poi aggiungila. L'errore non mi sembra correlato con l'uso della property, così a occhio..
tK
si certo prima che aggiungessi la funzione, scusa il gioco di parole, funzionava!
Cmq l'errore è riferito alla riga Protected WithEvents Login1 As Login del codebehind della pagina aspx, non del controllo. Ma la strada giusta è quella che o seguito? Va bene come l'ho dichiarato nella pagina per accedere a LabelTitle?
L'errore è cambiato!
Dunque, nel codebehind della pagina ho messo al posto di
Protected WithEvents Login1 As Login
Public Login As New login
Poi, nel codebehind del controllo il valore della stringa che passo dalla pagina arriva però adesso mi da il seguente errore su lbErrore.Text = Value:
Riferimento a un oggetto non impostato su un'istanza di oggetto.