none
Personalizar columnas en un gridview ? RRS feed

  • Pregunta

  • Es posible elegir las columnas que quiero que se carguen en un gridview ? estoy cargando un grid con un list de objetos, el problema es que en los objetos de ese list no estoy cargando todos sus campos pero el gridview muestra igual la columna con las filas vacias, como puedo no mostrar esas columnas que vienen vacias en mi list ?

    Ej, tengo una clase Cliente,

    cliente

    id,

    nombre,   -> tiene valores

    apellido    -> tiene valores

    estado     -> no tiene valor

    y asi muestra el grid:

    nombre     apellido     estado

    pepe          rojas         

    cami          rojas       

    lunes, 1 de mayo de 2017 16:30

Respuestas

  • Hola loopsInfinite

    Precisamente, si tu llenas el grid directamente, lo obligas a que te muestre todos los campos de la lista con la que lo llenas. Muy por el contrario, si especificas de la manera que te indicaba en la propiedad campo por campo y no le especificas uno de ellos, al momento de llenar el gridview, por más que le coloques..

    Gridview.DataSource= lista

    ...esto respetará los campos que has indicado en la propiedad mencionada.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 1 de mayo de 2017 20:59

Todas las respuestas

  • Hola loopsInfinite

    En la propiedad columns vas agregando las columnas y colocando los atributos de la entidad que deseas llenar en el valor DataField, (nombre, apellido); si llenas la lista directamente te mapeará todos los atributos de la entidad automaticamente.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 1 de mayo de 2017 16:37
  • Hola loopsInfinite

    En la propiedad columns vas agregando las columnas y colocando los atributos de la entidad que deseas llenar en el valor DataField, (nombre, apellido); si llenas la lista directamente te mapeará todos los atributos de la entidad automaticamente.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.


       Hola gracias por responder, la verdad me falto detallar un poco mas el problema, existe alguna forma de modificarlas manualmente ?  ya que el grid lo estoy cargando manualmente con una lista

    grid1.DataSource = listPersonas();
    grid1.DataBind();

    al hacer eso, el grid no discrimina entre los campos que vienen vacíos o no, simplemente muestra la cantidad de columnas segun la cantidad de atributos que posea la clase  de la cuál se compone mi list, ademas las columnas las deja con el mismo nombre de mis campos de clase, lo otro es que tampoco me muestra los campos compuestos, es decir en mi clase persona tengo:


     public string nombre{ get; set; } --> se visualiza como columna
     public string apellido{ get; set; }  --> se visualiza como columna
     public string estado { get; set; } --> se visualiza como columna pero no tiene valores
     public Tipo tipo { get; set; } --> por dentro contiene valores pero el grid no lo considera como campo
    
      constructor
      {
         tipo = new Tipo();
      }






    • Editado loopsInfinite lunes, 1 de mayo de 2017 20:23 ortografia
    lunes, 1 de mayo de 2017 20:22
  • Hola loopsInfinite

    Precisamente, si tu llenas el grid directamente, lo obligas a que te muestre todos los campos de la lista con la que lo llenas. Muy por el contrario, si especificas de la manera que te indicaba en la propiedad campo por campo y no le especificas uno de ellos, al momento de llenar el gridview, por más que le coloques..

    Gridview.DataSource= lista

    ...esto respetará los campos que has indicado en la propiedad mencionada.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 1 de mayo de 2017 20:59
  • hola

    >>Es posible elegir las columnas que quiero que se carguen en un gridview ?

    puedes indicar por medio de BoundField que columnas quieres visualizar, pero estarias definiendo las columnas del grid en tiempo de diseño, para lo cual debes indicar el AutoGenerateColumns = false

    usarias la opcion de la imagen

    para agregar las columnas que quieres visualizar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 1 de mayo de 2017 23:40