Hi Team,
I understand that a column will sort alpha when DataType String, and numerically when DataType Int, Double.
Is there a way for me to change my DataType string to Int in my SortCommand EventHandler? (I need to have column initially as DataType String for values <10, I display '< 10'. How can I make this column sort numerically?
Here is my current SortCommand Event Handler and my Initial RadGrid Sort settings
I understand that a column will sort alpha when DataType String, and numerically when DataType Int, Double.
Is there a way for me to change my DataType string to Int in my SortCommand EventHandler? (I need to have column initially as DataType String for values <10, I display '< 10'. How can I make this column sort numerically?
Here is my current SortCommand Event Handler and my Initial RadGrid Sort settings
public
virtual
void
AssignSortSettingsAndSortCommandEvent()
{
GridAdapter.AllowSorting = GlobalConstantsSharedWebUI.RadControls.RadGridAllowSorting;
GridAdapter.MasterTableView.SortExpressions.AllowNaturalSort = GlobalConstantsSharedWebUI.RadControls.AllowNaturalSort;
GridAdapter.AddGridSortCommandEventHander(OnGridSortCommand);
}
public
virtual
void
OnGridSortCommand(
object
source, Telerik.Web.UI.GridSortCommandEventArgs e)
{
GridSortExpression sortExpr =
new
GridSortExpression();
var radGrid = (source
as
RadGrid);
var col = radGrid.MasterTableView.GetColumn(
string
.Concat(e.SortExpression,
"_UniqueName"
))
as
GridBoundColumn;
col.DataFormatString =
"{0:N}"
;
col.DataType =
typeof
(Double);
switch
(e.OldSortOrder)
{
case
GridSortOrder.None:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Descending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
case
GridSortOrder.Ascending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = radGrid.MasterTableView.AllowNaturalSort ? GridSortOrder.None : GridSortOrder.Descending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
case
GridSortOrder.Descending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
}
e.Canceled =
true
;
radGrid.Rebind();
}