This is a migrated thread and some comments may be shown as answers.

Radgrid sort command in load data on demand in grid

1 Answer 264 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Margret
Top achievements
Rank 1
Margret asked on 17 Jul 2013, 06:22 AM

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;
        }

        
       
    }

1 Answer, 1 is accepted

Sort by
0
Margret
Top achievements
Rank 1
answered on 17 Jul 2013, 10:28 AM
Hi All.
I have set the AllowNaturalSort=false;then tried with the below code.It works fine.

 protected void RadGrid1_SortCommand(object sender, GridSortCommandEventArgs e)
    {
        GridSortExpression sortExprValue = new GridSortExpression();
        string defaultSortorder = e.OldSortOrder.ToString();
        sortByValue = ViewState["sortByValue"].ToString();
        orderByValue = ViewState["orderByValue"].ToString();
        if(orderByValue.Equals("Ascending"))
        {
                sortExprValue.FieldName = e.SortExpression;
                sortExprValue.SortOrder = GridSortOrder.Descending;
                e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExprValue);
                ViewState["sortByValue"] = sortExprValue.FieldName;
                ViewState["orderByValue"] = sortExprValue.SortOrder;

        }
        else if (orderByValue.Equals("Descending"))
        {
                sortExprValue.FieldName = e.SortExpression;
                sortExprValue.SortOrder = GridSortOrder.Ascending;
                e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExprValue);
                ViewState["sortByValue"] = sortExprValue.FieldName;
                ViewState["orderByValue"] = sortExprValue.SortOrder;
        }

      

        if (!e.Item.OwnerTableView.SortExpressions.ContainsExpression(e.SortExpression))
        {
            GridSortExpression sortExprValue1 = new GridSortExpression();
            sortExprValue1.FieldName = e.SortExpression;
            sortExprValue1.SortOrder = GridSortOrder.Ascending;
            e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExprValue1);
            ViewState["sortByValue"] = sortExprValue1.FieldName;
            ViewState["orderByValue"] = sortExprValue1.SortOrder;
        }

    }

Tags
General Discussions
Asked by
Margret
Top achievements
Rank 1
Answers by
Margret
Top achievements
Rank 1
Share this question
or