• Jueves 14 de Noviembre de 2024, 03:59

Autor Tema:  Creación Dinamica De Controles En Asp.net 1.x /c#  (Leído 5157 veces)

granjalf

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Creación Dinamica De Controles En Asp.net 1.x /c#
« en: Lunes 12 de Marzo de 2007, 16:25 »
0
Hola a todos:

Estoy construyendo una page dinámica para una empresa y necesito que se generen controles dinámicamente con la page. En este caso requiero que de acuerdo a una tabla de "Areas de la empresa" de la base de datos me genere dinámicamente tantos checkbox como campos en la tabla para que puedan elegir las areas y luego hacer una consulta con las areas seleccionadas.

Agradezco anticipadamente su pronta respuesta :)

Uso un dataset para manejar mis datos.

P.D:Pronto tambien necesitaré crear botones y textbox de igual manera, pls help

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« Respuesta #1 en: Martes 13 de Marzo de 2007, 22:43 »
0
Para eso puedes usar el control CheckBoxList.

Y debes usar las propiedades DataSource, DisplayMember DataTextField, y ValueMember  DataValueField.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

granjalf

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« Respuesta #2 en: Viernes 23 de Marzo de 2007, 16:03 »
0
THANKS...pero no hay esas propiedades... solo encuentro DataSource DataTextField y DataValueField. creo que es lo mismo :P

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« Respuesta #3 en: Viernes 23 de Marzo de 2007, 23:47 »
0
así es, esos son  :whistling: !

CheckBoxList (Miembros)

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

trentia

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« Respuesta #4 en: Miércoles 28 de Marzo de 2007, 17:55 »
0
Deberás de seguir estos pasos:
1) Leer los datos y meterlos en un DataSet
2) Recorrerte este dataset
3) Por cada datarow realizar:
         CheckBox cList = new CheckBox;
         cList.Id = "número de fila del datarow";
4) Añadir este control a la página. Para añadirlo lo mejor será tener un control de servidor tipo panel y realizar lo siguient:
                 panel1.Controls.Add(cList);

Espero que te sirva de ayuda.

Javier Tirado
IT Consultor
Trentia Consulting
Desarrollo web
Javier Tirado
Trentia Consulting
TRENTIA
.]

granjalf

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« Respuesta #5 en: Martes 3 de Abril de 2007, 17:54 »
0
Muchas gracias. Si resultaron todos, he optado por el siguiente:

private void Page_Load(object sender, System.EventArgs e)
   {
      if(!this.IsPostBack)
      {

         Base.NORMA norma = new SGI_Intranet2.Base.NORMA();
         cblNormas.DataSource = norma.GetNormas();
         cblNormas.DataValueField = "ID_NORMA";
         cblNormas.DataTextField = "NOM_NORMA";
         cblNormas.DataBind();

         Base.DOCUMENTO docint = new SGI_Intranet2.Base.DOCUMENTO();
         cblDoc.DataSource = docint.GetDocInternos();
         cblDoc.DataValueField = "ID_DOC";
         cblDoc.DataTextField = "NOM_DOC";
         cblDoc.DataBind();
      }
   }

Ahora se me presentó un problemota de nuevo. Tengo que crear drop down Lists dinámicamente de acuerdo a los elementos que elijo de mi CheckboxList y que se llenen con datos que saco de una Base de Datos.

He utilizado un Panel para crear dentro de este un Label y un DropDownList por cada item seleccionado en el checkboxlist; cuando utilizo el checkboxlist todo va bien, pero cuando hago clic en un checkbox para que me haga aparecer otro panel, mi panel que tiene los labels y dropdownlists se vacía. Aqui envío el código de llenado y el código del checkbox. En el Form_Load solo tengo el codigo arriba escrito. HELP PLS!!

//este metodo uso para controlar los checkbox elegidos de mi checkBoxList
private void cblNormas_SelectedIndexChanged(object sender, System.EventArgs e)

   {
   //con este if veo si hay algún checkbox en checked  
   if (cblNormas.SelectedIndex !=-1)
      {
         //este es el panel que lleno
         pnlNormas.Visible = true;
         string normas;
         Label lb;
         DropDownList dl;
         int c = 0;
         Base.REGLA regla = new SGI_Intranet2.Base.REGLA();
                //este for corre todos los checkbox del cbl, y crea un label y un
                //dropdownlist por cada item que esté checked (o selected)
   for(int i=0;i<cblNormas.Items.Count;i++)
   {
      if (cblNormas.Items.Selected)
      {
         normas = "n.id_norma =" + cblNormas.Items.Value;
         pnlNormas.Controls.Add(new Label());
         lb = (Label)(pnlNormas.Controls[c]);
         c++;
         lb.Text = cblNormas.Items.Text + ": ";
         lb.ID = "lb" + cblNormas.Items.Text;
         lb.Width = 142;
         lb.Font.Bold = true;
         lb.BackColor = Color.FromArgb(195,216,235);
         pnlNormas.Controls.Add(new DropDownList());
         dl = (DropDownList)(pnlNormas.Controls[c]);
         dl.ID = cblNormas.Items.Text;
         dl.Width = 600;
         c++;
         dl.DataSource = regla.GetReglaVerdeNorma(normas);
         dl.DataValueField = "ID_REGLA";
         dl.DataTextField = "NOM_REGLA";
         dl.DataBind();
      }
   }
        }
   else
        pnlNormas.Visible = true;//era false
   }


//este es el de checkbox, simplísimo
private void chkOtros_CheckedChanged(object sender, System.EventArgs e)
   {
   if (chkOtros.Checked)
      pnlOtroReg.Visible = true;
   else
      pnlOtroReg.Visible = false;
   }

Agradezo de Antemano su pronta respuesta :)