Foros del Web » Programando para Internet » ASPX (.net) »

Obtener Id name de un checkbox C#

Estas en el tema de Obtener Id name de un checkbox C# en el foro de ASPX (.net) en Foros del Web. hola he creado varios checkbox de forma dinamica en behind code pero me encontre con un problema q no tengo ni la menor idea de ...
  #1 (permalink)  
Antiguo 25/04/2010, 10:44
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 5 meses
Puntos: 0
Obtener Id name de un checkbox C#

hola he creado varios checkbox de forma dinamica en behind code pero me encontre con un problema q no tengo ni la menor idea de como recuperarlos id para ir viendo cual fue seleccionado...adjuntos codigo

Código:
for (int i = 0; i < data.Count; i++)
        {
            object[] obj = data[i];
            PnlControl.Controls.Add(GetLiteral);
            PnlControl.Controls.Add(new LiteralControl("<tr>"));
            PnlControl.Controls.Add(new LiteralControl("<td>" + obj[1] + "</td>"));
            PnlControl.Controls.Add(new LiteralControl("<td>" + obj[2] + "</td>"));
            PnlControl.Controls.Add(new LiteralControl("<td>" + obj[4] +", "+ obj[3] + "</td>"));
            PnlControl.Controls.Add(new LiteralControl("<td>" + obj[5] + "</td>"));
            PnlControl.Controls.Add(new LiteralControl("<td>&nbsp;</td>"));
            PnlControl.Controls.Add(new LiteralControl("<td>"));

            chkList1 = new CheckBox();
            chkList1.Text = "Active" + obj[0];
            chkList1.ID = "Chk" + obj[0];
            chkList1.Font.Name = "Verdana";
            chkList1.Font.Size = 9;
            PnlControl.Controls.Add(chkList1);

            PnlControl.Controls.Add(new LiteralControl("</td>"));
            PnlControl.Controls.Add(new LiteralControl("</tr>"));

        }
en "chkList1.ID = "Chk" + obj[0];" el Id seria Chk40 --- obj[0] corresponde al id del registro

la idea es ir seleccionado los q quiero q se activen y recuperarlo en la funcion de abajo alguien tiene alguna idea de como identificarlos?
Gracias.

Código:
    protected void Activate_Click(object sender, EventArgs e)
    {
     
    }
  #2 (permalink)  
Antiguo 25/04/2010, 20:05
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: Obtener Id name de un checkbox C#

Si entendi bien tu pregunta, la solución es agregar el manejador de eventos al evento CheckedChanged de cada control que creas, asi:

Código:
chkList1.CheckedChanged += Activate_Click;
Sin embargo el evento no se dispararia de manera automatica ya que los checkbox no generarian el postback, tendrias que establecer la propiedad a verdadero:

Código:
chkList1.AutoPostBack = true;
Con esto cada que selecciones uno de tus controles creados se disparará el manejador de eventos que creaste (Activate_Click).

Para recuperar el id del control que esta disparando tienes que referenciarlo en tu manejador de eventos y obtener su propiedad ID:

Código:
protected void Activate_Click(object sender, EventArgs e)
    {
        CheckBox chk = (CheckBox)sender;
        string x = chk.ID;
    }
Por otro lado, si lo que quieres es que cuando otro control dispara el evento Activate_Click obtener los ID de los checkbox marcados, seria algo asi:

Código:
foreach (Control c in PnlControl.Controls)
        {

            if (c.GetType() == typeof(CheckBox))
            {
                using (CheckBox chk = (CheckBox)c)
                {
                    if(chk.Checked)
                        y = chk.ID;
                }
            }
            
        }
Suerte

Etiquetas: checkbox, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.