Encuéntranos en Google+.

lunes, 15 de octubre de 2012

FindControl en Asp.Net

Bueno pues después de varios intentos de poder asignarle un valor a un control  desde una MasterPage estuve investigando y llegue a poder hacerlo con el metodo FindControl de la clase System.Web.UI .

Básicamente lo que hace el método es buscar el control de servidor en el contenedor de nomenclatura actual con el parámetro especificado del id.

Cuando creamos controles en este caso asp.net todos por defecto deben de llevar un id.




Entonces el problema era que necesitaba asignarle un valor a un control de tipo TextBox pero el control no pertenecia a la  MasterPage sino  que era un control de una pagina que usaba la MasterPage para ello hice lo sigiuente :

 protected void Page_Load(object sender, EventArgs e)
    {
        //Buscando el control con ayuda del metodo FindControl
        Control txtMiControl = (TextBox)this.Page.Master.FindControl("MainContent").FindControl("txtNombre");

        //Validar que exista el control
        if (txtMiControl != null)
        {
            ((TextBox)txtMiControl).Text = "Hola Mundo";
        }
        else
        {
            
            //Enviar un mensaje de que el control no existe 

            this.lblMensaje.Text = "Control no encontrado.";
        }
    }

La estructura como tenia el control es la siguiente :

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="wfrmDemo.aspx.cs" Inherits="wfrmDemo" %>




    

Al final es cuestión de saber identificar que id usa tu control y donde esta situado , permitiéndote agregar  o modificar los valores de sus propiedades.

Saludos...

No hay comentarios:

Publicar un comentario