ordenação e paginação com gridview asp.net

Estou tentando obter um gridview para classificar e paginar manualmente sem sucess

O problema é que, quando um usuário clica na coluna que deseja classificar, ele classifica essa página, mas não classifica a fonte de dados (visualização de dados) atrás da visualização em grade. Portanto, quando eles progridem para uma página diferente, sua classificação é perdida. Estou procurando uma classificação que realmente classifique a fonte de dados por trás do gridview. Aqui está o que eu tenho até agora:

protected void GridView_OnSort(object sender, GridViewSortEventArgs e)
    {
        String sortExpression = e.SortExpression;

        if (GridViewSortDirection == SortDirection.Ascending)
        {
            DataView myDataView = new DataView(mybll.GetItemsOrdered());
            myDataView.Sort = sortExpression + " DESC";
            GridView.DataSource = myDataView;
            GridView.DataBind();
        }
        else
        {
            DataView myDataView = new DataView(mybll.GetItemsOrdered());
            myDataView.Sort = sortExpression + " ASC";
            GridView.DataSource = myDataView;
            GridView.DataBind();
        }
    }

Qualquer ajuda seria apreciada. Obrigado

questionAnswers(5)

yourAnswerToTheQuestion