Tenga en cuenta el algoritmo actual a continuación que se repite en las filas de GridView
para determinar si el Checkbox
contenido está seleccionado/verificado.LINQ: busque todas las casillas marcadas en un GridView
List<int> checkedIDs = new List<int>();
foreach (GridViewRow msgRow in messagesGrid.Rows)
{
CheckBox chk = (CheckBox)msgRow.FindControl("chkUpdateStatus");
if (chk.Checked){
//we want the GridViewRow's DataKey value
checkedMsgIDs.Add(int.Parse(messagesGrid.DataKeys[msgRow.RowIndex].Value.ToString()));
}
}
Esto funciona como se esperaba: uno se queda con un totalmente poblada List<int>
.
Pregunta: ¿Cómo o podría volver a escribir o mejorar este algoritmo usando LINQ para buscar en la GridView
para todas las filas que tienen su Checkbox
seleccionada/comprobado?
Thanks LC! 'Convert.ToInt32' debería funcionar bien. ¡Gracias por esa mejora también! –
Esto puede sonar tonto, pero asegúrese de tener 'using System.Linq;' en su lugar antes de tratar de escribir esta declaración. Pude escribir todas las cosas de Linq sin quejarse, sin embargo cuando intenté hacer el reparto implícito (de GridViewRow msgRow) el compilador se quejó de que no había una definición para 'Cast' en GridViewRowCollection y nada en Intelli-sense me dijo que necesitaba un uso – ammills01