none
Esconder Columnas GridView RRS feed

Respuestas

  • hola

    podrias removerla

    usando

    DataGridView1.Columns.RemoveAt(4);

    por el indice indicas cual remover

     

    o podrias definir las columnas que quieres mostrar en timempo de diseño

     

    [DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn

    como planteo en la priemr seccion del articulo

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 8 de septiembre de 2011 16:08
  • Podrias también usar para esconder las columnas en un datagrid:

    DataGridView1.Columns[1].Visible = false;

    Lo que hago aquí es esconder la columna no. 2, ya que como sabrás el indice comienza en 0, por esta razón coloco el no. 1 como la columna a esconder.

     

    Espero te sirva.. :)

     

    jueves, 8 de septiembre de 2011 22:57
  • Si tus columnas autogeneradas provienen de una entidad/clase generica, pudieras definir desde la misma que campos se mostrarán y cuales no, usando el namespace System.ComponentModel. Por ejemplo:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ComponentModel;

    namespace TuProyecto
    {
     public class Usuario
     {
       [Browsable(false)]
       public int UsuarioId {get;set;}

       [Browsable(true)]
       public string NombreUsuario {get;set;}

       [Browsable(false)]
       public int PerfilId {get;set;}
     }
    }

    Solo se mostraran las propiedades que tengan la anotación browsable en "false", es decir solo sera visible el NombreUsuario, en este caso puedes especificar o NO el '[Browsable(true)]' ya que por defecto lo tendra en 'true'.

    Así al mapear tu grid a una colección de tipo "Usuario" solo se desplegara en cada row el valor NombreUsuario, pero esto no quiere decir que el resto de propiedades no este disponible, puedes acceder a ellas desde un renglon del grid sin problema, y sería de la siguiente forma:

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).UsuarioId.ToString());

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).NombreUsuario);

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).PerfilId.ToString());

    Me parece otra opción y agregas un poco de elegancia y limpieza a tu codigo.

    Saludos.

    viernes, 9 de septiembre de 2011 15:42
  • en tiempo de diseño , debes quitar el check

    que dice Auto-generate fields

     

    gridview


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Saludos. Lima-Perú

    jueves, 8 de septiembre de 2011 23:38

Todas las respuestas

  • hola

    podrias removerla

    usando

    DataGridView1.Columns.RemoveAt(4);

    por el indice indicas cual remover

     

    o podrias definir las columnas que quieres mostrar en timempo de diseño

     

    [DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn

    como planteo en la priemr seccion del articulo

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 8 de septiembre de 2011 16:08
  • Podrias también usar para esconder las columnas en un datagrid:

    DataGridView1.Columns[1].Visible = false;

    Lo que hago aquí es esconder la columna no. 2, ya que como sabrás el indice comienza en 0, por esta razón coloco el no. 1 como la columna a esconder.

     

    Espero te sirva.. :)

     

    jueves, 8 de septiembre de 2011 22:57
  • en tiempo de diseño , debes quitar el check

    que dice Auto-generate fields

     

    gridview


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Saludos. Lima-Perú

    jueves, 8 de septiembre de 2011 23:38
  • Si tus columnas autogeneradas provienen de una entidad/clase generica, pudieras definir desde la misma que campos se mostrarán y cuales no, usando el namespace System.ComponentModel. Por ejemplo:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ComponentModel;

    namespace TuProyecto
    {
     public class Usuario
     {
       [Browsable(false)]
       public int UsuarioId {get;set;}

       [Browsable(true)]
       public string NombreUsuario {get;set;}

       [Browsable(false)]
       public int PerfilId {get;set;}
     }
    }

    Solo se mostraran las propiedades que tengan la anotación browsable en "false", es decir solo sera visible el NombreUsuario, en este caso puedes especificar o NO el '[Browsable(true)]' ya que por defecto lo tendra en 'true'.

    Así al mapear tu grid a una colección de tipo "Usuario" solo se desplegara en cada row el valor NombreUsuario, pero esto no quiere decir que el resto de propiedades no este disponible, puedes acceder a ellas desde un renglon del grid sin problema, y sería de la siguiente forma:

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).UsuarioId.ToString());

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).NombreUsuario);

    MessageBox.Show(((Usuario)(this.tuGrid.CurrentRow.DataBoundItem)).PerfilId.ToString());

    Me parece otra opción y agregas un poco de elegancia y limpieza a tu codigo.

    Saludos.

    viernes, 9 de septiembre de 2011 15:42
  •  me funciono de esta manera: con el evento RowCreated de mi gridview


        Protected Sub gvdetalle_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvdetalle.RowCreated

            e.Row.Cells(11).Visible = False
            e.Row.Cells(10).Visible = False

        End Sub

    • Propuesto como respuesta Abiel SD lunes, 3 de agosto de 2015 16:41
    miércoles, 26 de marzo de 2014 22:47
  • excelente, ,muchas gracias tenia todo el dia buscando algo que me ayude a resolver este tema.

    y ya todo me funciona correctamente.

    miércoles, 12 de noviembre de 2014 21:10
  • Que tal Tuttini, en esta publicacion se esta solicitando "esconder u ocultar" no eliminar
    lunes, 3 de agosto de 2015 16:40
  • Tu tienes la respuesta correcta, ya que es un Gridview, un control web, no un DataGrid. Gracias
    lunes, 3 de agosto de 2015 16:41