Por favor esto me urge...

07/06/2005 - 18:17 por José Luis | Informe spam
Hola a todos,

estoy convirtiendo una aplicación que tengo en EVB a .NET y necesito
rellenar un grid con los valores de un array y no consigo como hacerlo.
Alguien del foro me puede decir si es esto posible y si lo es como puedo
hacerlo?

Gracias por anticipado y disculpad mi insistencia pero es que me urge
bastante.

Un saludo,
José Luis.

Preguntas similare

Leer las respuestas

#1 J. Carlos Herrrero
07/06/2005 - 20:38 | Informe spam
Hola:
Prueba esto, lo copie de este foro
Creo que es de Tristan

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim lista() As MisDatos = {New MisDatos("1,1", "1,2"), New
MisDatos("2,1", "2,2")}
DataGrid1.DataSource = lista
End Sub

Public Class MisDatos
Public Sub New(ByVal _col1 As String, ByVal _col2 As String)
Me._col1 = _col1
Me._col2 = _col2
End Sub

Private _col1 As String
Public Property col1() As String
Get
Return _col1
End Get
Set(ByVal Value As String)
_col1 = Value
End Set
End Property

Private _col2 As String
Public Property col2() As String
Get
Return _col2
End Get
Set(ByVal Value As String)
_col2 = Value
End Set
End Property
End Class

Espero que te sirva
Un saludo desde Bilbo:
Carlos

" José Luis" <JLB> escribió en el mensaje
news:%
Hola a todos,

estoy convirtiendo una aplicación que tengo en EVB a .NET y necesito
rellenar un grid con los valores de un array y no consigo como hacerlo.
Alguien del foro me puede decir si es esto posible y si lo es como puedo
hacerlo?

Gracias por anticipado y disculpad mi insistencia pero es que me urge
bastante.

Un saludo,
José Luis.


Respuesta Responder a este mensaje
#2 Tristan
07/06/2005 - 22:08 | Informe spam
Además de lo que te ha dicho J. Carlos, recuerda un par de cosas.

Al enlazar un Array, DataGrid visualiza todas las propiedades públicas de
los elementos. Es decir si el objeto no tiene propiedades públicas, no se
visualizará nada. Ahhh, y no puedes utilizar un array bidimensional sin más.

Por otro lado, quizá la forma más cómoda y flexible de llenar un DataGrid es
mediante un DataTable/DataSet. Un DataTable es prácticamente lo mismo que un
array. Por ej:

Dim tabla As DataTable = GetTabla(3, 2)
tabla.Rows(0)(1) = "0,1"
tabla.Rows(1)(2) = "1,2"
Me.DataGrid1.DataSource = tabla

Private Function GetTabla(filas As Integer, columnas As Integer)
Dim tabla As New DataTable
For i As Integer = 1 To filas
tabla.Columns.Add("")
Next
For i As Integer = 1 To columnas
tabla.Rows.Add(tabla.NewRow)
Next
Return tabla
End Function

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 José Luis
08/06/2005 - 10:51 | Informe spam
Muchas gracias a los dos!!!

he optado por la solución que ha dado Tristan porque se asemeja más a la
forma de trabajar de la aplicación que estoy convirtiendo. He probado el
código que has pasado, y salvo en la creación de la tabla que me parece que
esta cambiado el parámetro de columnas por el de filas, me ha funcionado
perfectamente.

Una última duda sobre esto es que para darle nombre a las columnas he hecho
lo siguiente:
tabla.Columns.Item(0).ColumnName = "Divisa"


Esto para cada columna, pero no veo como decirle la longitud de cada
columna, me podéis decir como hacer esto?

Muchas gracias de nuevo.

Un saludo,
José Luis.


" José Luis" <JLB> escribió en el mensaje
news:#
Hola a todos,

estoy convirtiendo una aplicación que tengo en EVB a .NET y necesito
rellenar un grid con los valores de un array y no consigo como hacerlo.
Alguien del foro me puede decir si es esto posible y si lo es como puedo
hacerlo?

Gracias por anticipado y disculpad mi insistencia pero es que me urge
bastante.

Un saludo,
José Luis.


Respuesta Responder a este mensaje
#4 Tristan
08/06/2005 - 16:44 | Informe spam
Para dar formato a un datagrid, utiliza un objeto TableStyle. Puedes crearlo
en tiempo de diseño, desde la propiedad TableStyles del DataGrid, o por
código:


Dim tabla As DataTable = GetTabla(4, 3)
tabla.Columns(0).ColumnName = "A"
DataGrid1.DataSource = tabla
Dim estilo As New DataGridTableStyle
DataGrid1.TableStyles.Add(estilo)
estilo.GridColumnStyles(0).Width = 15
estilo.GridColumnStyles(1).HeaderText = "B" 'Otra forma de dar título


Ahhh, y si, los bucles de GetTabla están al revés. Habría que intercambiar
filas y columnas. :-)

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#5 José Luis
08/06/2005 - 17:22 | Informe spam
Muchas gracias de nuevo Tristan,

perdona que te lo diga pero eres un hacha, lo explicas tan claro que uno se
pregunta como puede ser que no diera con ello.

Muchas gracias de nuevo por esta, por las respondidas anteriormente y por
las que seguro vendrán :)

Un saludo,
José Luis.


"Tristan" escribió en el mensaje
news:
Para dar formato a un datagrid, utiliza un objeto TableStyle. Puedes


crearlo
en tiempo de diseño, desde la propiedad TableStyles del DataGrid, o por
código:


Dim tabla As DataTable = GetTabla(4, 3)
tabla.Columns(0).ColumnName = "A"
DataGrid1.DataSource = tabla
Dim estilo As New DataGridTableStyle
DataGrid1.TableStyles.Add(estilo)
estilo.GridColumnStyles(0).Width = 15
estilo.GridColumnStyles(1).HeaderText = "B" 'Otra forma de dar título


Ahhh, y si, los bucles de GetTabla están al revés. Habría que intercambiar
filas y columnas. :-)

Juan Carlos Badiola
MVP - C#


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida