CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Creación Dinamica De Controles En Asp.net 1.x /c#

<< < (2/2)

granjalf:
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 :)

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa