public void HandleService(GridAction action, SmartView view, params object[] p)
{
if (view == null) return;
if (!view.AllowSorting) return;
if (action != GridAction.Sorting) return;
// Handle sorting
GridViewSortEventArgs args = p[0] as GridViewSortEventArgs;
if (args == null) return;
if (args.SortExpression == LastExpression)
{
SortAscending = !SortAscending;
}
else
{
SortAscending = true;
LastExpression = args.SortExpression;
}
args.SortDirection = SortDirection;
if (view.DataSource is IDomainCollection)
{
IDomainCollection col = (IDomainCollection)view.DataSource;
col.Sort(args.SortExpression, (args.SortDirection == SortDirection.Ascending) ? SortOrder.Ascending : SortOrder.Descending);
view.DataSource = col;
}
view.DataBind();
}