Foros del Web » Programación para mayores de 30 ;) » .NET »

Ocultar las columnas de un Datagrid en tiempo de Ejecución

Estas en el tema de Ocultar las columnas de un Datagrid en tiempo de Ejecución en el foro de .NET en Foros del Web. hola gente del foro Ya no se que hacer pero no puedo ocultar las columnas de un datagrid en tiempo de ejecución Lo tengo en ...
  #1 (permalink)  
Antiguo 16/10/2004, 11:57
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Ocultar las columnas de un Datagrid en tiempo de Ejecución

hola gente del foro

Ya no se que hacer pero no puedo ocultar las columnas de un datagrid en tiempo de ejecución


Lo tengo en tiempo de ejecución puesto que mi datagrid se carga de forma dinámica dependiendo de lo que se envia se hace una determinada consulta.



Mi código es el siguiente


string sql=" select prod.co_linea codlinea,prod.co_catego codcategoria," +
" prod.co_tipo codtipo,prec.co_producto codproducto, " +
" prod.tx_descom desproducto,unid.co_unidad codunidad, "+
" unid.tx_descomp desunidad,prec.vm_preclist prelista " +
" from tbr_vt_precios prec,tbm_in_catprd prod, tbm_ge_unidad unid " +
" where prec.co_producto=prod.co_catprd and " +
" unid.co_unidad=prod.co_univta and " +
" prec.bd_estado='V' and '" +
System.DateTime.Now.Day.ToString() + "-" +
System.DateTime.Now.Month.ToString()+ "-" +
System.DateTime.Now.Year.ToString() + "'<=prec.fe_finalizacion and '" +
System.DateTime.Now.Day.ToString() + "-" +
System.DateTime.Now.Month.ToString()+ "-" +
System.DateTime.Now.Year.ToString() + "' >=prec.fe_inicio ";

SqlDataAdapter daBusqueda= new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
daBusqueda.Fill(ds, "tbm_in_catprd");
DataTable dt=new DataTable();
dt=ds.Tables["tbm_in_catprd"].Copy();

//Con esto le cambio las columnas a mi DataTable
dt.Columns[0].ColumnName="LINEA";
dt.Columns[1].ColumnName="CATEGORIA";
dt.Columns[2].ColumnName="TIPO";
dt.Columns[3].ColumnName="CODIGO";
dt.Columns[4].ColumnName="DESCRIPCION";
dt.Columns[5].ColumnName="CODUNIDAD";
dt.Columns[6].ColumnName="DESUNIDAD";
dt.Columns[7].ColumnName="PRECIO LISTA";

//Encontré este código para ocultar columnas pare no funciona
dt.Columns[2].ColumnMapping = MappingType.Hidden;

DataSet dsnuevo=new DataSet();
dsnuevo.Tables.Add(dt);
this.dtgProducto.DataSource=dsnuevo;
dtgProducto.DataBind();


Espero que alguien me pueda ayudar

Gracias de antemano
  #2 (permalink)  
Antiguo 17/10/2004, 10:33
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
dt.columns[2].visible=false
  #3 (permalink)  
Antiguo 18/10/2004, 07:49
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Cita:
Iniciado por Mickel
dt.columns[2].visible=false

Esa propiedad no existe.

Cualquier ayuda adicional será bienvenida
  #4 (permalink)  
Antiguo 18/10/2004, 08:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Puedes hacer ésto:

Cita:
this.dtgProducto.Columns[X].Visible = False
Solo recuerda tener tu datagrid con la propiedad
AutoGenerateColumns = False , ya que si están en tru te va a marcar error de que no encuentra el índice.

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 18/10/2004, 08:51
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Cita:
Iniciado por RootK
Puedes hacer ésto:



Solo recuerda tener tu datagrid con la propiedad
AutoGenerateColumns = False , ya que si están en tru te va a marcar error de que no encuentra el índice.

Saludos


Parece que no me explique bien.

Mi columnas en el grid son dinámicas. Es decir el AutoGenerateColumns está en TRUE puesto que las columnas se crean en tiempo de ejecución.

Como ocultarlas entonces????

Gracias por tu ayuda
  #6 (permalink)  
Antiguo 18/10/2004, 09:08
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Es decir el AutoGenerateColumns está en TRUE puesto que las columnas se crean en tiempo de ejecución.
Yo lo decía para que fuera mas facil ocultar la columna, porque propiamente si están en true no se puede hacer directamente pero puedes hacerlo con el ItemDataBound del Grid.

Ejemplo:

Cita:
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
e.Item.Cells(X).Visible = False
End Sub
Salu2
  #7 (permalink)  
Antiguo 18/10/2004, 09:18
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Listo ya funcionó Rootk.

Eres un maestro.

Gracias por tu ayuda.
  #8 (permalink)  
Antiguo 19/10/2004, 08:21
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 19 años, 11 meses
Puntos: 6
Solo un consejo:

Yo mejor borraría el campo de la tabla y después enlazaría...

Bueno.. es un consejo...
Salu2
  #9 (permalink)  
Antiguo 19/10/2004, 09:04
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Es una buena opcion si no utilizaría estos campos ocultos.

Si los uso después sino los hubiese borrado antes de hacer el databind.

Saludos
  #10 (permalink)  
Antiguo 19/10/2004, 09:47
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Ahora tengo otra duda

Como podría hacer para darle formato.(Igual columnas autogeneradas)

Lo que necesito es dar formato a cierta columna del
datagrid. Ejemplo a una fecha.

Si fueran columnas fijas serían en Data Formatting
Expression lo siguiente: "{0:dd-MM-yyyy}"

Pero como hago esto en tiempo de ejecución puesto que las
columnas se crean dinámicamente.

Saludos
  #11 (permalink)  
Antiguo 26/08/2008, 13:46
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Respuesta: Ocultar las columnas de un Datagrid en tiempo de Ejecución

Cita:
Iniciado por phinojosa Ver Mensaje
Esa propiedad no existe.

Cualquier ayuda adicional será bienvenida

Hola, yo lo solucione de la siguiente manera, y es como lo presentias salvo por el evento que lo aplica.

Es codigo C# pero en VB es muy parecido...

private void dgDatos_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgDatos.Columns["ID"].Visible = false;
}

Espero que les sirva.

Saludos a todos y que sigan los Exitos
  #12 (permalink)  
Antiguo 23/03/2010, 12:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 14
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ocultar las columnas de un Datagrid en tiempo de Ejecución

hola , soy nuevo en esto , yo tambien tengo problemas con ocultar una columna en un gridview , utilizo c# ,, intente con la funcion
private void GridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
GridView1.Columns[2].Visible = false;
}

me dice Error 1 No se puede encontrar el tipo o el nombre de espacio de nombres 'DataGridViewBindingCompleteEventArgs' (¿falta una directiva using o una referencia de ensamblado?)

no se como hacerle , muchas gracias
  #13 (permalink)  
Antiguo 23/03/2010, 16:57
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Ocultar las columnas de un Datagrid en tiempo de Ejecución

Cita:
Iniciado por rafaoax
yo tambien tengo problemas con ocultar una columna en un gridview .
Fecha último mensaje : 26-ago-2008, 13:46

Como recomendación antes de colocar un post por favor verifiquen la fecha y si ya tiene tiempo abran uno nuevo

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net

Última edición por RootK; 23/03/2010 a las 17:02
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:47.