起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 245|回复: 6

【结帖】datagrid全选问题!**

[复制链接]
发表于 2009-4-2 10:45:31 | 显示全部楼层 |阅读模式
利用selectAll方法,只能选取所显示界面的所有记录,搜素论坛,选上optionsdb-edgoloadallrecords该属性后,能选上所有记录,

但是选上optionsdb-edgoloadallrecords属性后,我的获取所选记录的代码就报错

setlength(numstr,datagrid1.SelectedCount);

  with DataGrid1.DataSource.DataSet do
    for i := 0 to DataGrid1.SelectedCount - 1 do
     begin
        [B]Bookmark := DataGrid1.SelectedRows;[/B]         
        numstr:=FieldByName('ResRegNum').AsString;
     end;

报错:
运行系统初始化的时候发生异常:List index out of bounds (1)

类型:EStringListError。
回复

使用道具 举报

发表于 2009-4-2 10:47:22 | 显示全部楼层
with DataGrid1.DataSource.DataSet do
    for i := 0 to DataGrid1.SelectedCount - 1 do
     begin
        Bookmark := DataGrid1.SelectedRows;         
        numstr:=FieldByName('ResRegNum').AsString;
     end;
在这个循环之前,提前把Bookmark 记录下来(比如用TStrings),然后再在这个循环里用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-2 11:29:33 | 显示全部楼层
提前记录??没明白

提前记录不也得用循环把选上的行给一个一个记录下来?跟这样有区别?
回复 支持 反对

使用道具 举报

发表于 2009-4-2 11:37:44 | 显示全部楼层
应该是这个属性闹得:edgoLoadAllRecords

procedure TMAINFORM.Button1Click(Sender: TObject);
var
  i,j : Integer;
  Bookmark,s : String;
begin
  Memo1.Clear;
  if DataGrid1.SelectedCount > 0 then
  begin
    DataGrid1.OptionsDB := DataGrid1.OptionsDB - [TDataGridOptionDB.edgoLoadAllRecords];
    for i := 0 to DataGrid1.SelectedCount -1 do
    begin
      DataSetBroker1.DataSet.Bookmark := DataGrid1.SelectedRows;
      for j := 0 to 0 do
      begin
        if (j > 0) then
          s := s + ', ';
        s := s + DataSetBroker1.DataSet.Fields[j].AsString;
      end;
      Memo1.Lines.Add(s);
      s := '';
    end;
    DataGrid1.OptionsDB := DataGrid1.OptionsDB + [TDataGridOptionDB.edgoLoadAllRecords];
  end;
end;

你尝试一下这样子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-2 16:31:49 | 显示全部楼层
回楼上
这样做,确实不报错,但是这样加代码以后,执行完,要是没有刷新数据集,datagrid的轮动条就没了,就只显示最前面能显示的那写记录
回复 支持 反对

使用道具 举报

发表于 2009-4-3 09:36:53 | 显示全部楼层
楼主,请根据2楼的思路来做吧。我试过的,可以。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-7 10:20:06 | 显示全部楼层
按2楼的实现了,有点奇怪

结贴吧,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 21:08 , Processed in 0.038559 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表