pu

Buscar este blog

martes, 23 de septiembre de 2014

Recorrer un GridView y verificar si un CheckBoxField esta Checked o no usando C# y ASP.NET

Hola Amigos, si te gusta los posts en mi blog, por favor sígueme en Twitter bajo @tmaoner para ver mis aportaciones. 





Para la mayoría de ustedes que leen mi blog, este post es bien simple, pero créanme que muchos en la comunidad no lo sabían el día de hoy, por lo tanto los posteo para que los que me pidieron que lo hicieran lo puedan leer hoy en la noche y hacerlo funcionar en sus páginas.





El problema cae en lo siguiente, cuando tenemos un GridView y en una de las columnas manejamos un CheckBoxField  varios de los programadores con los que hable hoy no sabían cómo verificar del lado de la programación al momento de recorrer el GridView si estaba Checked o no.





Es fácil poder verificarlo, primero que todo deben de recorrer el  GridView , esto se hace de la siguiente forma usando un foreach :





        foreach (GridViewRow grd_Row in this.grd_Items.Rows)


        {


        }





Si ven en el foreach vamos a utilizar GridViewRow para ir utilizando cada fila. Después de tener este foreach vamos a insertar en el el siguiente código:





CheckBox chk_Publicar = (CheckBox)grd_Row.Cells[6].Controls[0];





Lo que estamos hacienda acá es que vamos a declarar un CheckBox  y en el mismo lo vamos a instanciar por medio de elegir la columna donde se encuentra el CheckBoxField  y con el método Controls  el cual le vamos a indicar que esta columna es especial.





Ya cuando tenemos nuestro CheckBox declarado, ya podemos hacer uso de el de forma normal, para verificar si esta Checked o no, ya pueden usar un simple if:





            if (chk_Publicar.Checked)


            {


                // Codigo


            }


            else


            {


                // Codigo


            }





Ya con esto, pueden hacer uso de cualquier CheckBoxField  en un GridView. El código final, debe de quedarles algo parecido:





        foreach (GridViewRow grd_Row in this.grd_Items.Rows)


        {


            CheckBox chk_Publicar = (CheckBox)grd_Row.Cells[6].Controls[0];





            if (chk_Publicar.Checked)


            {


                // Codigo


            }


            else


            {


                // Codigo


            }


        }

2 comentarios:

  1. Aunque prefiero el gran VB.Net, entiendo este código, sin embargo sería bueno ampliarlo utilizando la propiedad DataKeyNames para obtener la clave de cada fila y así eliminar (por ejemplo) el registro seleccionado según el checkbox.

    ResponderEliminar
  2. una duda y espero que me ayudes con eso... en la parte donde pones "//codigo", que ponemos, pues llevo varios dias con esto y no sé poner, si me colaborar te lo agradecería muchisimo

    ResponderEliminar