Una etiqueta Label no es accesible dentro de un UpdateProgress

by Marc Cortada 20/01/2013

Si queremos acceder a una etiqueta contenida dentro de un UpdateProgress por programación, el compilador puede retornar un error indicando que no se encuentra el símbolo. La etiqueta está incluida correctamente dentro de los elementos de la página aspx o el control ascx "UpdateProgress > ProgressTemplate" tal y como se muestra en el ejemplo:

<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<asp:Label ID="etiquetaTextoEspere" runat="server"></asp:Label>
</ProgressTemplate>
</asp:UpdateProgress>

Sin embargo, al intentar acceder a la etiqueta etiquetaTextoEspere por programación con una línea de código como se muestra a continuación:

this.etiquetaTextoEspere.Text = "Hola";

El compilador retorna el error:

Error 37 (…) no contiene una definición de 'etiquetaTextoEspere' ni se encontró ningún método de extensión 'etiquetaTextoEspere' que acepte un primer argumento de tipo (…) (¿falta una directiva de uso o una referencia de ensamblado?) (…)

He conseguido obtener la referencia a esta etiqueta por programación con el método FindControl del objeto UpdateProgess1. De este modo puedo acceder a al etiqueta y trabajar con ella normalmente por programación (por ejemplo para cambiar el texto dinámicamente).

((Label)this.UpdateProgress1.FindControl("etiquetaTextoEspere")).Text = "Hola";

También podemos guardar la referencia al objeto si queremos hacer varias operaciones además de escribir un código más limpio:

Label etiqueta = ((Label)this.UpdateProgress1.FindControl("etiquetaTextoEspere"));
etiqueta.Text = "Hola";

Y a partir de aquí ya tenemos la referencia para trabajar con ella normalmente.

No he encontrado una solución a este problema que permita compilar la página sin errores y poder referenciar la etiqueta normalmente como si estuviera incluida dentro de un elemento Panel (por ejemplo). Las versiones con las que obtengo este comportamiento son: VS 2010 y .NET 4.0. Si alguien sabe otra forma de hacerlo ¡el comentario será bienvenido!

Tags:

Categorías: ASP.NET | C# | Programación y desarrollo

No se aceptan más comentarios

Entradas por mes