先搞清楚逻辑
假如有Name,Score字段,当前页是Name排序的第三页,点Score后,你想要Score的第四页还是第一页?

解决方案 »

  1.   

    把排序字段放入ViewState,每次绑定DataGrid之前,先用这个字段排序DataView
      

  2.   

    呵呵,翻页之后,用viewState记住当前的排序字段在DataGrid1_PageIndexChanged里绑定Datagrid的时候,用当前的排序字段形成的DataView来绑定datagrid
      

  3.   

    我都试了,我在pageIndexChange函数中,加入了使用了BindGrid(stringfield),其中stringfield就是前面的排序字段。可是还是不行啊。
      

  4.   

    private void dgDoc_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {
    string sortfield=e.SortExpression;
    sortstring=e.SortExpression;
    BindGrid(sortfield);
    } private void dgDoc_PageIndexChanged_1(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dgDoc.CurrentPageIndex=e.NewPageIndex;
    BindGrid(sortstring);

    }
    上面是排序和分页的函数内容。请问有什么问题
      

  5.   

    我想,叶面刷新后,sortstring=""应该用viewstate保存变量:如下:
    System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {
    ViewState["sortexp"]=e.SortExpression;
    BindGrid((string)ViewState["sortexp"]);
    }
    private void dgDoc_PageIndexChanged_1(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dgDoc.CurrentPageIndex=e.NewPageIndex;
    BindGrid(((string)ViewState["sortexp"]);

    }试一试吧
      

  6.   

    sortstring和ViewState["sortexp"]不是一样的吗,都是变量啊
      

  7.   

    ViewState可以在页面刷新之后还能保存原来的值,而一般的变量就不行了