miércoles, 23 de julio de 2008

Insertar un Checkbox dentro de un Gridview

Es muy común querer darle mas funcionalidad a nuestro gridview para que sea mas amigable para el usuario. En el gridview podemos insertar cualquier control asp.net a través de un témplate, en nuestro ejemplo vamos a mostrar un ckeckbox par que el usuario note si tiene hijos una persona. Primero crearemos un proyecto web



Luego procedemos a crear una clase Persona, que será con la que poblaremos el gridview.

public class Persona
{
string nombre;
string apellido;
string telefono;
int numeroHijo;
public string Nombre
{
get
{
return nombre;
}
}
public string Apellido
{
get
{
return apellido;
}
}
public string Telefono
{
get
{
return telefono;
}
}
public bool TieneHijo
{
get
{
return numeroHijo != 0;
}
}
public Persona(string pnombre,string papellido,string ptelefono,int pnumeroHijo)
{
nombre = pnombre;
apellido = papellido;
telefono = ptelefono;
numeroHijo = pnumeroHijo;
}


}
Procedemos a crear una pagina aspx webPersona.aspx


Insertamos un gridview para mostrar los datos.




y en el Template ponemos



Fijemonos que en la Propiedad CheckBox le asignamos
DataBinder.Eval(Container.DataItem,"TieneHijo")
que nos indicara si la persona tiene hijos o no
Tendra hijos cuando este con check

Crear un metodo LlenarGrid , el cual contendra una coleccion de datos.
public void LlenarGrid()
{ List lista = new List();
lista.Add(new Persona("Luis","Campoverde","2156160",1));
lista.Add(new Persona("Fernando", "Salle", "2156200", 0));
lista.Add(new Persona("Santiago", "Matamoros", "2156234", 0));
lista.Add(new Persona("Daniel", "Chaqui", "2156333", 1));
gvPersona.DataSource = lista;
gvPersona.DataBind();
}
Este Metodo lo asignamos dentro de Page Load
protected void Page_Load(object sender, EventArgs e) {
//Procedemos a llamar el metodo LlenarGrid()
LlenarGrid();
}
Y se tendra este resultado.


Como ya se comento ustedes pueden poblar el gridview con cualquier control de asp.net que usted quieran, si ustedes lo deseasen podrían poblar un gridview dentro de otro gridview, pero eso seria en otro blog para mostrar el ejemplo. Gracias espero le haya servido y lo puedan generalizar a lo que ustedes requieran.

No hay comentarios: