miércoles, 17 de octubre de 2012

Ejemplos de como hacer ordenacion en SqlDataSource y DataTable

Para el SqlDataSource: 



if (Session["SortExpression"] == "id")
        {
            if (Session["order"] == "asc")
            {
                SqlDS.SelectCommand = Regex.Replace(SqlDS.SelectCommand, @"ORDER BY tb2\.[a-z]* [A-Z]{3,4}", 
 "ORDER BY tb2.id ASC"); //sustituimos la cadena order by por el campo que queremos ordenar de forma ascendente 
(ver imagen1)
             }
            else
            {
                SqlDS.SelectCommand = Regex.Replace(SqlDS.SelectCommand, @"ORDER BY tb2\.[a-z]* [A-Z]{3,4}", 
 "ORDER BY tb2.id DESC"); //descendente
              }
        }

(Imagen 1) Exprecion regular que nos permite seleccionar “ORDER BY tb2.id ASC” de una cadena de texto
Como ordenar un DataTable:

 if (Session["SortExpression"] == "id")
        {
            if (Session["order"] == "asc")
            {
                DataSource.DefaultView.Sort = "id ASC";//id es el nombre de la columna que queremos ordenar
            }
            else
            {
                DataSource.DefaultView.Sort = "id DESC";
            }
        }