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