Ordenar un dataGrid en windows por código

06/12/2004 - 17:59 por Tio | Informe spam
¡Hola!

He observado que se ordena automáticamente un dataGrid pinchando en sus
columnas, pero me gustaría saber hacer esto mediante código y no encuentro
como.

¿alguien lo sabe?.

gracias!

Preguntas similare

Leer las respuestas

#1 Miguel Angel Campos
06/12/2004 - 18:55 | Informe spam
Crea un DataView desde el DataTable que estas utilizando de datos, y
establece la propiedad Sort del DataView con el campo por el cual quieres
ordenar. Posteriormente asigna este DataView a la propiedad DataSource del
DataGrid.

Un Saludo,

Miguel Angel Campos, MCP

"Tio" escribió en el mensaje
news:
¡Hola!

He observado que se ordena automáticamente un dataGrid pinchando en sus
columnas, pero me gustaría saber hacer esto mediante código y no encuentro
como.

¿alguien lo sabe?.

gracias!


Respuesta Responder a este mensaje
#2 Tio
08/12/2004 - 00:24 | Informe spam
Hola!

he realizado tal que así:

DataView dv = new DataView(ds.Tables["Articulos"]);

dv.Sort.IndexOf("Descripción");

dataGrid1.DataSource = dv;


Pero no me ordena, ¿que hago mal?.


Por cierto, ¿como puedo saber por que colúmna del dataGrid está ordenado?.

PD: Siempre hablando de un Winform.
Respuesta Responder a este mensaje
#3 Miguel Angel Campos
08/12/2004 - 18:04 | Informe spam
Prueba lo siguiente:

DataView dv = ds.Tables["Articulos"].DefaultView;
dv.Sort = "Descripción DESC"
dataGrid1.DataSource = dv

Te debería funcionar.
Aqui tienes la ayuda de la MSDN:
http://msdn.microsoft.com/library/d...ttopic.asp

Un Saludo,

Miguel Angel Campos, MCP

"Tio" escribió en el mensaje
news:
Hola!

he realizado tal que así:

DataView dv = new DataView(ds.Tables["Articulos"]);

dv.Sort.IndexOf("Descripción");

dataGrid1.DataSource = dv;


Pero no me ordena, ¿que hago mal?.


Por cierto, ¿como puedo saber por que colúmna del dataGrid está ordenado?.

PD: Siempre hablando de un Winform.


Respuesta Responder a este mensaje
#4 Tio
08/12/2004 - 20:40 | Informe spam
Muchas gracias!... era mas simple de lo que me imaginaba

Una última cosa... ¿como puedo saber el valor de una columna de tipo String
en la que el usuario haya pinchado con el ratón?.

Es decir, si hay un dataGrid con todos los clientes, como puedo averiguar el
contenido del campo "Descripción" de la fila donde ha pinchado!

Gracias!
Respuesta Responder a este mensaje
#5 Miguel Angel Campos
09/12/2004 - 21:03 | Informe spam
Podrías utilizar el evento CurrentChanged del objeto CurrencyManager(que
hereda de BindingManagerBase).

Puedes crear una variable de tipo BindingManagerBase.
private BindingManagerBase _bnd;

Despues de asociar el DataSource del DataGrid al DataView, haces lo
siguiente:
_bnd = this.BindingContext[dataGrid1.DataSource];
_bnd.CurrenChanged += new EventHandler(dataGrid1_CurrentChanged);

En el evento puedes acceder sin problemas al DataRow del registro actual:
(Esta parte creo que se puede mejorar, pero bueno)
nTemp int.Parse(((DataRowView)(((BindingManagerBase)sender)).Current).Row[0].ToStr
ing());

Donde 0 es el índice del campo al que quieres acceder.

Un Saludo,

Miguel Angel Campos, MCP

"Tio" escribió en el mensaje
news:
Muchas gracias!... era mas simple de lo que me imaginaba

Una última cosa... ¿como puedo saber el valor de una columna de tipo


String
en la que el usuario haya pinchado con el ratón?.

Es decir, si hay un dataGrid con todos los clientes, como puedo averiguar


el
contenido del campo "Descripción" de la fila donde ha pinchado!

Gracias!


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