private BeforeSortingEventArgs BuildBeforeSortingEventArgs(OLVColumn column, SortOrder order)
{
OLVColumn groupBy = this.AlwaysGroupByColumn ?? column ?? this.GetColumn(0);
SortOrder groupByOrder = this.AlwaysGroupBySortOrder;
if (order == SortOrder.None) {
order = this.Sorting;
if (order == SortOrder.None)
order = SortOrder.Ascending;
}
if (groupByOrder == SortOrder.None)
groupByOrder = order;
BeforeSortingEventArgs args = new BeforeSortingEventArgs(
groupBy, groupByOrder,
column, order,
this.SecondarySortColumn ?? this.GetColumn(0),
this.SecondarySortOrder == SortOrder.None ? order : this.SecondarySortOrder);
if (column != null)
args.Canceled = !column.Sortable;
return args;
}