Una nueva modificación. Cuando se intenta acceder al texto introducido en el cuadro de texto desde el código de la página ASPX tenía que recurrir a esto:
Código:
CType(Me.CPEmpresa.FindControl(Me.CPEmpresa.IDTxt), TextBox).Text
Por lo que he añadido una nueva propiedad pública al control de manera que se pueda acceder fácilmente al valor del cuadro de texto tanto para leer como para modificar. El código completo quedaría ahora así:
Código:
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class controlCPProvincia
: Inherits Control : Implements INamingContainer
Private IDTxt As String = "TxtCP"
Private _cpInicial As String
Public Property CPInicial() As String
Get
Return _cpInicial
End Get
Set(ByVal Value As String)
_cpInicial = Value
End Set
End Property
Public Property Texto() As String
Get
Return CType(Me.FindControl(IDTxt), TextBox).Text
End Get
Set(ByVal Value As String)
CType(Me.FindControl(IDTxt), TextBox).Text = Value
End Set
End Property
Protected Overrides Sub CreateChildControls()
Dim txt As New TextBox
txt.MaxLength = "5"
txt.Columns = "1"
txt.ID = IDTxt
txt.Text = CPInicial
Dim lbl As New Label
......
De esta manera, símplemente en el código fuente de la página ASPX se pone:
Me.CPEmpresa.Texto
Lo único es que si hago un postback en la página no me conserva el texto de la etiqueta, apareciendo simpre el inicial "Provincia no identificada". No sé si es por el evento onload de javascript.
Un saludo.