MUGPERU
  Search 
Thursday, November 20, 2008 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: OCULTAR COLUMNA DE UN DATAGRID
Prev Next
You are not authorized to post a reply.

Author Messages
DENSOFT
Posts:91

28/10/2005 01:54 PM  

HOLA COMUNIDAD, TENGO UN DATAGRID EL CUAL LO LLENO CON UN DATA SET :

Dim dset As New DataSet

cmd.Fill(dset, "XXX")

DgCabecera.SetDataBinding(dset, "XXX")

HE AQUI MI PROBLEMA QUISIERA OCULTAR LA PRIMERA COLUMNA DEL DATAGRID.

ESPERO ME PUEDAN AYUDAR

 

ATTE:

DENSOFT

Cyber_Rata
Posts:20

28/10/2005 11:05 PM  

Bueno, siempre yo asigno una tabla. ya que trato de hacer mis forms lo mas sencillo posible, me imagino que al asignar un dataset, tienes varias tablas, relacionadas para que te aparezcan en cascada... con el popular (+) a la izquierda

Asumiendo que solo muestres una tabla, no la he fumado con varias, lo hago asi.

1.- En la grilla, creo un TableStyle, que no es nada mas que la forma en la que presentaras la info, orden de columnas, etc, etc.

2.- En la ventana que aparece, presiono nuevo y en la propiedad MappingName,  pones el nombre de la tabla que vas a asociar. por ejemplo : dtMiTabla.TableName = "Demo", entonces deberas poner "Demo" en ese campo.

3.- Creo, en la misma ventana de TableStyle, un GridColumnStyle, ya estamos mas adentro!!! Y vas creando cada columna con los caption y en la propiedad MappingName, pones el nombre del campo de tu DataTable. Asi solo muestro lo que quiero mostrar.

No he probado ponerle en la propiedad Width = 0, preferiria crear otro TableStyle y cambiar el nombre de la tabla o algo asi, no se, nunca lo he necesitado...

Espero te sirva.

Cyber_Rata

PD. Lo he escrito de memoria, asi que si hay un error de esritura de propiedades, sorry...

Cyber_Rata
Posts:20

28/10/2005 11:11 PM  

Otra cosa, por lo que veo en tu codigo, no estas separando la capa logica y capa de datos ... todo esta en el form. Ojo, si deseas lo pones en el mimo proyecto, en carpetas y explotando los namespaces, pero no deberias hacer todo en el form.

Tarjeta Amarilla.

richie_crazy57
Posts:203

31/10/2005 07:50 AM  

Hola, DENSOFT:

La manera más fácil de ocultar una columna en tu datagrid es la siguiente:

Dim objCnx = New SqlConnection(strCnx)

Dim objCmd As New SqlCommand("Select * from Products", objCnx)

Dim objDataAdapter As SqlDataAdapter = New SqlDataAdapter(objCmd)

objDataAdapter.Fill(dtsNorthwind, "Products")

dtsNorthwind.Tables("Products").Columns("ProductID").ColumnMapping = MappingType.Hidden

DataGrid1.DataSource = dtsNorthwind

DataGrid1.DataMember = "Products"

Tal como puedes apreciar, una vez cargados los datos en el DataSet, y antes de enlazarlos al DataGrid, debes establecer el tipo de mapeo de la(s) columna(s) que deseas ocultar con el valor Hidden de la enumeración MappingType.

Como ves, esto resulta muchísimo más simple y rápido que crear TableStyles y sus ColumnStyles respectivos.Suerte. Bye. J

Я!©ђ!Є ©Я∆ZΨ

 

DENSOFT
Posts:91

31/10/2005 12:03 PM  

gracias por sus comentarios y ejemplos. ya pude ocultar una columna de las dos formas que pusieron.

RICHIE de la forma q pusiste se puede ocultar la columa, pero cuando hago click en una fila no puedo obtener la data q esta en la columna oculta.

hay forma de obtener esa data?. lo que quiero ocultar es mi campo Key y por ello necesito la data q esta en la columna oculta.

y para los q trabajan con

DataGridTableStyle con la forma que nos explico el

 amigo CYBER_RATA  funciona poniendole

Dg1.TableStyles(0).GridColumnStyles("columna").Width = 0

GRACIAS A TODOS.

DENSOFT 

richie_crazy57
Posts:203

31/10/2005 12:59 PM  

Hola otra vez, DENSOFT:

Por supuesto que sí se puede obtener el valor de la columna oculta. Sin embargo tienes que saber dónde está la columna, amigo. J

Si dices que no puedes obtener el valor de la columna 0, estoy  casi seguro de que quisiste obtener su valor de la siguiente manera:

CStr(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))

Sin embargo, ahí estarías consultando a la columna 0 del DataGrid, y la columna que para el DataGrid es la columna 0, sería para la tabla real la columna 1, correcto?

Entonces tienes que capturar el valor de la columna 0 real de donde están los datos completos, sin ocultar. O sea, del DataTable devuelto por tu consulta:

CStr(CType(DataGrid1.DataSource, DataSet).Tables("Products").Rows(DataGrid1.CurrentRowIndex).Item(0))

Claro que para mi ejemplo he asignado “Products” como valor de la propiedad TableName del DataTable devuelto por mi consulta. Simplemente tienes que reemplazarlo por el nombre de tu tabla, o poner en vez del nombre, el índice del DataTable dentro de la colección Tables de tu DataSet. J

Ah, y por cierto que he utilizado la función CStr() para convertir el dato en String, dado que la propiedad Item devuelve un Object, pero bien podrías reemplazar el CStr, por un CInt, o un CType para castear el Object al tipo deseado. J.

Espero que esto también te sirva amigo. Bye. J

Я!©ђ!Є ©Я∆ZΨ

 

dotNetPeru
Posts:13

31/10/2005 05:21 PM  
Cuidado con usar funciones de compatibilidad hacia atras con VB6, lamentablemente es algo que vengo viendo con mucha frecuencia en personas que vienen de dicha version anterior de VB.

  Si quieres convertir valores a String por ejemplo hay una propiedad que tienen casi todas las clases que es " .ToString()" tambien puedes usar la clase estatica Convert para convertir valores de una clase a otra.

Saludos
dotNetPeru
lindalugo
Posts:1

09/01/2008 05:32 PM  
Hola richie me podras ayudar a ocultar una columna de un Datagrid mira yo cargo los datos en el grid de la siguiente manera:

ya lo intente de la forma q lo explcas pero no se oculta, que puedo hacer gracias.


la primera columna es la que kiero ocultar, Folio remision

Dt = New DataTable

Dt.Columns.Add(New DataColumn("Folio Remisión", GetType(Integer), "", MappingType.Hidden))

Dt.Columns.Add(New DataColumn("Centro de Distribución", GetType(String)))

Dt.Columns.Add(New DataColumn("Fecha Emisión", GetType(String)))

Dt.Columns.Add(New DataColumn("Total Artículos", GetType(Integer)))

 

For RemesionesTot = 0 To TR.Length - 1

Dr = Dt.NewRow

Dr(3) = TR(RemesionesTot).FolRemision

Dr(0) = TR(RemesionesTot).Emisor & vbTab & DescCD

Dr(1) = Armafecha

Dr(2) = TotalDetalles

Dt.Rows.Add(Dr)

Next

DataGrid1.DataSource = Dt.DefaultView

DataGrid1.DataBind()

VJOMEL
Posts:4

25/05/2008 03:40 PM  

Hola richie_crazy57, necesito con urgencia tu ayuda.

Esto hice:

tbl.Columns(0).ColumnMapping = MappingType.Hidden

y he logrado ocultar la columna deseada

y ahora como lo visualizo con este ejemplo tuyo.

CStr
(CType(DataGrid1.DataSource, DataSet).Tables("Products").Rows(DataGrid1.CurrentRowIndex).Item(0))

Gracias.

VJOMEL
Posts:4

26/05/2008 05:03 PM  

Hola riche te deje una consulta.

Gracias.

You are not authorized to post a reply.



ActiveForums 3.7
        
Copyright 2001-2008 MUGPERU   Terms Of Use  Privacy Statement