viernes, 30 de enero de 2015

Funcion de ordenamiento DataTable jQuery con C# con ASP .NET Entitie Framework y MVC

Cascaron DataLayerIng En el post anterior mostré como usar el componente data table de JQuery; cuando el componete se usa generando el contenido con html se ordena automaticamnte al dar clic en la cabecera de cada columna; pero si se rellena por medio de Ajax se tiene que ordenar del lado del controlador revisando la orden que se envía del componente (Vista), por lo que se debe ordenar el resultado de nuestra consulta; para ordenar el resultado pude usarse el siguiente codigo:

switch (dataTable.iSortCol_0) //iSortCol_0: Esta variable nos devuekve un entero con la posicion de la columna en la que se desea ordenar
                {
                    case 0:
                        {
                            if (dataTable.sSortDir_0 == "asc")//sSortDir_0 Nos indica la forma de ordenacion ancendete o desendente
                            {
                                List = List.OrderBy(o => o.ID).ToList(); //Ordenamos utilizando Sintaxis LinQ sobre lalista estraida de Entityframework
                            }
                            else
                            {
                                List = List.OrderByDescending(o => o.ID).ToList(); //Ordenamos utilizando Sintaxis LinQ sobre lalista estraida de Entityframework
                            }
                            break;
                        }
                    case 1:
                        {
                            if (dataTable.sSortDir_0 == "asc")//sSortDir_0 Nos indica la forma de ordenacion ancendete o desendente
                            {
                                List = List.OrderBy(o => o.p_Numero).ToList(); //Ordenamos utilizando Sintaxis LinQ sobre lalista estraida de Entityframework
                            }
                            else
                            {
                                List = List.OrderByDescending(o => o.p_Numero).ToList(); //Ordenamos utilizando Sintaxis LinQ sobre lalista estraida de Entityframework
                            }
                            break;
                        }
                    default:
                        break;
                }
Usando la logica se debera usar una "case" por cada columna de nuestra tabla y es importante ordernarlo una ves que hallamos obtenido la informacion en bruto de nuestra tabla y para no ordenar solo los datos que estamos enviando de vuelta a la vista.

No hay comentarios:

Publicar un comentario