CXGRID排序以后 选择记录方式 哪个比较好//      for I := 0 to cxGrid1DBTableView1.DataController.GetSelectedCount-1 do
//      begin
//        J := cxGrid1DBTableView1.DataController.GetSelectedRowIndex(I);
//        s:=s+','+VarToStr(cxGrid1DBTableView1.DataController.GetRowValue(cxGrid1DBTableView1.DataController.GetRowInfo(J),0));
//      end;
      for i := 0 to cxGrid1DBTableView1.ViewData.RecordCount -1 do
      begin
        if cxGrid1DBTableView1.ViewData.Records[i].Selected then
        s:=s+','+cxGrid1DBTableView1.ViewData.Records[i].DisplayTexts[0];
      end;

解决方案 »

  1.   

          for i:= 0 to AView.Controller.SelectedRowCount-1 do
          begin
            showmessage(AView.DataController.GetDisplayText(AView.Controller.SelectedRows[i].RecordIndex,AView.DataController.GetItemByFieldName('Main_ID').Index));
            end;我一直都这样获取的
      

  2.   


    看你的需要了
    DataController:是数据集中的实际数据,即使你使用了grid的过滤,其中的数据并不是你所看到的,而是原始数据
    ViewData:是你所看到的界面上的记录,比如grid自己筛选后,ViewData就是筛选后的数据