Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>See <a href="http://www.codeproject.com/Articles/246361/Handle-GridView-OnSorting-using-LINQ" rel="nofollow noreferrer">Handle GridView.OnSorting() and create sorting expression dynamically using LINQ</a></p> <pre><code>public static class SortExpressionBuilder&lt;T&gt; { private static IDictionary&lt;SortDirection, ISortExpression&gt; directions = new Dictionary&lt;SortDirection, ISortExpression&gt; { { SortDirection.Ascending, new OrderByAscendingSortExpression() }, { SortDirection.Descending, new OrderByDescendingSortExpression() } }; interface ISortExpression { Func&lt;IEnumerable&lt;T&gt;, Func&lt;T, object&gt;, IEnumerable&lt;T&gt;&gt; GetExpression(); } class OrderByAscendingSortExpression : ISortExpression { public Func&lt;IEnumerable&lt;T&gt;, Func&lt;T, object&gt;, IEnumerable&lt;T&gt;&gt; GetExpression() { return (c, f) =&gt; c.OrderBy(f); } } class OrderByDescendingSortExpression : ISortExpression { public Func&lt;IEnumerable&lt;T&gt;, Func&lt;T, object&gt;, IEnumerable&lt;T&gt;&gt; GetExpression() { return (c, f) =&gt; c.OrderByDescending(f); } } public static Func&lt;IEnumerable&lt;T&gt;, Func&lt;T, object&gt;, IEnumerable&lt;T&gt;&gt; CreateExpression(SortDirection direction) { return directions[direction].GetExpression(); } } public static IEnumerable&lt;T&gt; OrderBy&lt;T&gt;(this IEnumerable&lt;T&gt; collection, string columnName, SortDirection direction) { ParameterExpression param = Expression.Parameter(typeof(T), "x"); // x Expression property = Expression.Property(param, columnName); // x.ColumnName Func&lt;T, object&gt; func = Expression.Lambda&lt;Func&lt;T, object&gt;&gt;( // x =&gt; x.ColumnName Expression.Convert(Expression.Property(param, columnName), typeof(object)), param ).Compile(); Func&lt;IEnumerable&lt;T&gt;, Func&lt;T, object&gt;, IEnumerable&lt;T&gt;&gt; expression = SortExpressionBuilder&lt;T&gt;.CreateExpression(direction); IEnumerable&lt;T&gt; sorted = expression(collection, func); return sorted; } </code></pre> <p>And links from the bottom:</p> <ul> <li><a href="https://stackoverflow.com/questions/722868/sorting-a-list-using-lambda-linq-to-objects">Sorting a list using Lambda/Linq to objects</a></li> <li><a href="https://stackoverflow.com/questions/250037/gridview-sorting-sortdirection-always-ascending">GridView sorting: SortDirection always Ascending</a></li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload