在CSDN上搜到之前有这样标题的问题,可惜打不开. 只有再问一遍了,谢谢!

解决方案 »

  1.   

    也搜到这样的代码,但其中的TUserDataSet不知道是什么?  var
        i:   Integer;
        sLine:   string;  with TcxGridDBTableView(Sender) do
      begin
        if not Assigned(DataController.DataSet) then exit;
        if DataController.DataSource.State <> dsBrowse then exit;
        try
          for i:=0 to ColumnCount - 1 do
            with Columns[I] do
            begin
              sLine:=Format('%0.2d',[SortIndex]) + DataBinding.FieldName;
              case SortOrder of
              soAscending:
                TUserDataSet(DataController.DataSource.DataSet).SortDataSetByFieldName(DataBinding.FieldName,False);
              soDescending:
                TUserDataSet(DataController.DataSource.DataSet).SortDataSetByFieldName(DataBinding.FieldName,True);
              end;
            end;
        finally
        end;
      end;
      

  2.   

    不知是不是我没说清楚,我的问题如标题:
     cxgrid的gridmode=true时,如何实现排序?
      

  3.   

    TUserDataSet=  TAstaClientDataSet;
    用asta组件做三层,TAstaClientDataSet是客户端数据集
    估计是这样了。
      

  4.   


    那TUserDataSet我们不管他,还是回到原题吧:cxgrid的gridmode=true时,如何实现排序?搜到一点这样的文字:
    In Grid mode, the data controller抯 performance is better, but features such as automatic sorting, filtering and summary calculations are disabled.  You have to write appropriate event handlers (OnSortingChanged, Filter.OnBeforeChange, OnAfterSummary) to perform these actions.但不知OnSortingChanged中该怎么弄.
      

  5.   

      你那段代码就应该就是要写在OnSortingChanged中的,我没用过CXgrid,呵呵,控件不熟。
      
      

  6.   

    我知道是cxgrid的OnSortingChanged事件,关键是这个事件里如何弄,不得而知.
      

  7.   

    那我就再说明确些:
    1. cxgrid的gridmode=true时,如何实现排序?
    2. 如果要通过cxgrid的OnSortingChanged事件中处理排序,如何弄?
      

  8.   

    1.cxgrid的gridmode=true,这是前提,要先把这个设置为true,你才能在OnSortingChanged排序。
    2.在OnSortingChanged写你那段代码,完成排序了。
    不是说gridmode=true就实现排序了。那段英文不是说了吗,
     You have to write appropriate event handlers (OnSortingChanged, Filter.OnBeforeChange, OnAfterSummary) to perform these actions.
      

  9.   

    ecjtu5208:
    请看明白了再回答,好么? 
    如果你不清楚,请让明白的人来回答!1.cxgrid的gridmode=true,这是前提,要先把这个设置为true,你才能在OnSortingChanged排序。
    --------------
    我的问题本来就是:cxgrid的gridmode=true时,如何实现排序?2.在OnSortingChanged写你那段代码,完成排序了。
    --------------
    我之前也说了:
     a. 如果要通过cxgrid的OnSortingChanged事件中处理排序,该具体如何弄?
     b. 之前的代码中有TUserDataSet对象,我没有用到他,而且也说到了"那TUserDataSet我们不管他".
      

  10.   

    它本身点击列,就按列排序了 你要怎么排序
    我也没找你到 你说的gridmode属性 在哪里设置true
      

  11.   

    oh,天哪!真没人知道么?我先回答Versus1008
    gridmode属性,cxgriddbtableview.datacontroller.datamodecontroller.gridmode=true 后,就无法自动实现排序. gridmode=false模式下,数据全加载了,数据多的时候速度很慢. 
    因此采用gridmode=true,但自动排序功能就无法实现了.再次明确问题:cxgrid的gridmode=true时,如何实现排序?鄙人虽无星无级,但做程序已10余年,自认不是菜鸟,因此希望各位有实质性的回答.望知道的人,指点一下. 哪怕是一点方向也可以! 先谢过!
      

  12.   

    看到了 这么隐蔽的地方 还真没用过 刚才看了一下 设置true以后 按一列分组后 又可以排序了 直接排的方法还没找到
      

  13.   

    顶! 诺大的CSDN,没人知道么?