Dynamic Check CheckBoxes que no tienen un valor verdadero "comprobado"

votos
0

He estado trabajando en una aplicación web usando ASP.NET con la base de código como C #. Tengo una tabla dinámica que cambia de tamaño en función de un retorno de una consulta SQL; con una casilla de verificación agregada en la tercera celda de cada fila. A la casilla de verificación se le asigna una ID según un índice y la fecha.

Cuando los usuarios presionan el botón de enviar, se supone que el código obtiene un valor de cada fila que está marcada. Sin embargo, al pasar por las filas, ninguna de las casillas de verificación tiene un valor verdadero para la propiedad Comprobada. La ID persiste, pero el valor de la casilla de verificación parece haberse perdido.

Código para agregar las casillas de verificación:

cell = new TableCell();  
CheckBox cb = new CheckBox();  
cell.ApplyStyle(TS);  
cb.ID = index.ToString() +   +  lstDate.SelectedItem.Text.ToString();  

if (reader[RestartStatus].ToString() == 0)  
{  
     cb.Checked = false;  
     cb.Enabled = true;  
}  
else  
{  
     cb.Checked = true;  
}  
cell.Controls.Add(cb);  

El código para obtener el valor de la casilla de verificación:

for (int i = 0; i < CompTable.Rows.Count; i++)  
{  
    int t3 = CompTable.Rows[i].Cells[2].Controls.Count;  
    Control temp = null;  
    if (t3 > 0)  
    {  
        temp = CompTable.Rows[i].Cells[2].Controls[0];  
    }  

    string t2 = i.ToString() +   + lstDate.SelectedItem.Text.ToString();  
    if ( temp != null && ((CheckBox)temp).ID == i.ToString() +   +   lstDate.SelectedItem.Text.ToString())  
    {  
        //Separated into 2 if statements for debugging purposes  
        //ID is correct, but .Checked is always false (even if all of the   boxes are checked)  
        if (((CheckBox)temp).Checked == true)  
        {  
            tlist.Add(CompTable.Rows[i].Cells[0].Text.ToString());  
        }  
    }  
}
Publicado el 04/08/2009 a las 16:17
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

La causa más probable para que los controles dinámicos no tengan un valor es que se crearon después de que ViewState se cargó o se leyó antes.

En términos generales, los controles dinámicos deben crearse durante el evento PageInit y leerse durante o después del evento PageLoad.

Respondida el 04/08/2009 a las 16:26
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more