I have used the follwing code for my sorting in load data on demand in telerik grid.I have used SortBy as Name,Orderby as Descending by default.While pageload,it loads the descending order with name correctly.If i click on the Name header,it will sort ascending correctly.If again i click on the header text it doesnt set the Orderby value as ascending (as previous value).What I have to do for that?
protected void RadGrid1_SortCommand(object sender, GridSortCommandEventArgs e)
{
GridSortExpression sortExpr = new GridSortExpression();
e.Canceled = true;
string defaultSortorder = e.OldSortOrder.ToString();
sortBy = ViewState["SortBy"].ToString();
orderBy = ViewState["OrderBy"].ToString();
switch (e.OldSortOrder)
{
case GridSortOrder.Ascending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Descending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
ViewState["sortBy"] = sortExpr.FieldName;
ViewState["orderBy"] = sortExpr.SortOrder;
break;
case GridSortOrder.Descending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
ViewState["sortBy"] = sortExpr.FieldName;
ViewState["orderBy"] = sortExpr.SortOrder;
break;
}
if (!e.Item.OwnerTableView.SortExpressions.ContainsExpression(e.SortExpression))
{
GridSortExpression sortExpr1 = new GridSortExpression();
sortExpr1.FieldName = e.SortExpression;
sortExpr1.SortOrder = GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr1);
ViewState["sortBy"] = sortExpr1.FieldName;
ViewState["orderBy"] = sortExpr1.SortOrder;
}
}