none
Ayuda con UserControl RRS feed

  • Pregunta

  • Hola a un UserControl le implemente un gridview para agregar telefonos eh ir mostrandolos, tambien para cargarlos de la fuente de datos el tema es el siguiente que cuando agrego un telefono no queda listado y se borra si agrego otro telefono, y otro problema que tengo es que cuando quiero mostrar los telefonos no lo hace me aparece SystemCollectionGeneric.EntidadesCompartidasTelefono en el gridview como hago para arreglar este problema dejo el codigo que implemente debajo gracias.

    public partial class UserControl_ControlTelefono : System.Web.UI.UserControl
    {   
        private List<Telefono> LosTelefonos;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LosTelefonos = new List<Telefono>();
            }
        }
        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                Telefono unTel = new Telefono(txtTelefono.Text);
                List<Telefono> ListaTel = null;

                if (ViewState["Telefonos"] == null)
                {
                    ListaTel = new List<Telefono>();
                    ListaTel.Add(unTel);
                }
                else
                {
                    ListaTel = (List<Telefono>)ViewState["Telefonos"];
                    ListaTel.Add(unTel);
                }

                GVTelefonos.DataSource = ListaTel;
                GVTelefonos.DataBind();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        
        public void CargoTelefonos()
        {
            List<Telefono> ListaT = new List<Telefono>();
            GVTelefonos.DataSource = ListaT;
            GVTelefonos.DataBind();
            //LosTelefonos = ListaT;
            ViewState["Telefonos"] = ListaT; 
        }
        public List<Telefono> TelefonosNuevos
        {
            get { return LosTelefonos; }
        }
        
    }


    miércoles, 12 de agosto de 2015 5:06

Todas las respuestas

  • hola

    puedo observar que usas el ViewState para conservar la lista de telefonos, ahora bien para agregar un telefono nuevo naegas a otra pagina?

    lo que veo es que luego de agregar un nuevo telefono no vuelves asignar la lista al viewstate

    protected void btnAgregar_Click(object sender, EventArgs e)
    {
    
    	Telefono unTel = new Telefono(txtTelefono.Text);
    	
    	List<Telefono> ListaTel = null;
    
    	if (ViewState["Telefonos"] == null)
    		ListaTel = new List<Telefono>();
    	else
    		ListaTel = (List<Telefono>)ViewState["Telefonos"];
    
    	ListaTel.Add(unTel);
    	ViewState["Telefonos"] = ListaTel;
    	
    	GVTelefonos.DataSource = ListaTel;
    	GVTelefonos.DataBind();
    
    }

    definir un try..catch para retorner el error no tiene ningun sentido por eso no se define

    en que momento usas el metodo CargoTelefonos() ? porque en el codigo que muestras solo lo declaras

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 12 de agosto de 2015 6:18
  • CargoTelefonos() lo uso en el boton buscar en la pagina de mantenimiento

     ControlTelefono1.CargoTelefonos(unaEmpresa.ColTelefonos);

    pero no me aparece nada en el gridview.

    Que estoy definiendo mal?

    miércoles, 12 de agosto de 2015 18:33
  • Los teléfonos los agrego en manteamiento empresa allí uso el user control, debo implementar un método ademas para agregarlos o solo con ControlTelefono1.TelefonosNuevos me funcionara?
    miércoles, 12 de agosto de 2015 18:50