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:
Mostrar la cita
#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.
#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:
Mostrar la cita
#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!
#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:
Mostrar la cita
String
Mostrar la cita
el
Mostrar la cita
Ads by Google
Search Busqueda sugerida