Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2009, 11:20
darkandres123
 
Fecha de Ingreso: septiembre-2009
Mensajes: 31
Antigüedad: 14 años, 8 meses
Puntos: 0
Ayuda Ordenación de Datagrid

Saludos colegas.. escribo para intentar hallar alguna idea de cómo solucionar mi problema.

De una vez indico que ya he navegado horas de horas por foros y blogs buscando una respuesta a lo que necesito pero no encuentro en concreto información que me funcione por la manera en la que estoy trabajando..

Trabajo en C#.NET 2005, con BD SQL SERVER 2005 y en el método de programación por capas... utilizo las 3 básicas, el Common para definición de Objetos, el Data para la interacción con la BD y el Service como enlace entre capas...

Bien, resulta que se me solicitó agregar la ordenación a un DataGrid, la verdad nunca lo he hecho, pero bueno, encontré la propiedad AllowSorting y la establecí en True, desde ahí comencé a tener problemas, mis columnas son de tipo Template, el Grid tiene formato por medio de un CSS y resulta que no quizo convertir los encabezados a Hyperlinks... luego de probar, y probar.... y probar.... al fin di con la propiedad que me faltaba establecer en el HTML, fue así como la columna me quedó así..

<asp:TemplateColumn HeaderText="The Value" SortExpression="ValueColumn">

Perfecto, ya con eso obtengo el clic y capturo el evento SortCommand de mi Datagrid... yo feliz de la vida me dispongo a buscar el método de ordenamiento, que supuse debe ser genérico, como lo es el de la paginación...

Leí por todo lado tanto en español como inglés y me llevé la sorpresa de que en todos los lugares que "explican" la forma correcta, en realidad ninguno explica y ponen código que intentando acoplar a mi proyecto sencillamente no funciona...

Pasa que mi Datagrid tiene como Datasource un Array! el cual lo obtengo desde la estructura de capas... y todos los ejemplos que encuentro realizan el método de ordenación por medio de un GridView... Ok, entonces reviso el GridView y resulta que sólo permite ser "llenado" con un DataTable... entonces me planteé, bueno, voy a convertir el Array que tengo en un DataTable... y bien, fracaso nuevamente... no logro hacerlo, pasa que encontré un método que lo hace en la buena teoría:

DataTable1.LoadDataRow(Array, true)

Pero.... a la hora de llenarlo me dice que la cantidad de columnas de la Tabla es menor a la de la matriz, entonces se me vino a la mente que lo más lógico era que pedía una definición previa de las columnas que utiliza el grid... pero al hacerlo me mantiene el mismo error... entonces no lo comprendo...

En fin, lo normal segun he visto es que los DataTables los llenan con un DataSet, pero en mi caso no me sirve hacerlo así por la estructura que llevo...

Sé obtener el valor del SortExpression y demás, se que directamente el Grid no puede ordenarlos, pero necesito saber si es que soy tan inútil o si de verdad hay algo que no he visto y me pueda funcionar, incluso si se pudiera evitar ese montón de conversiones entre objetos me agradaría, pero si no al menos con que funcione me conformo...

Si alguno tiene alguna idea con todo gusto se lo agradezco...