protected virtual void HandleColumnClick(object sender, ColumnClickEventArgs e)
{
if (!this.PossibleFinishCellEditing())
return;
// Toggle the sorting direction on successive clicks on the same column
if (this.LastSortColumn != null && e.Column == this.LastSortColumn.Index)
this.LastSortOrder = (this.LastSortOrder == SortOrder.Descending ? SortOrder.Ascending : SortOrder.Descending);
else
this.LastSortOrder = SortOrder.Ascending;
this.BeginUpdate();
try {
this.Sort(e.Column);
} finally {
this.EndUpdate();
}
}