Delphi7 TMS TDBAdvGrid 单击列标题时对数据进行排序

标签 delphi delphi-7 tms data-aware

我是 Delphi 的新手,我需要建议。

我正在使用 TMS TDBAdvGrid,当用户单击列标题时,我需要对数据进行排序。我设置了网格的排序设置,并为 onclicksort 事件编写了代码,但它不起作用。

网格的排序设置:

 SortSettings.Show = True;
 SortSettings.IgnoreBlanks = True;
 SortSettings.BlankPos = blLast;

onclicksort 事件:

 try
     try
       if FSortISWorking then
         Exit;
       FSortISWorking := true;

       if ACol < 0 then
       begin
         grid.BeginUpdate;
         grid.SortSettings.Column := ACol;
         Application.ProcessMessages;
         grid.QSort;
         grid.EndUpdate;
       end;
     except on e: Exception do
       begin
         // log the error
       end;
     end; 
     finally
      FSortISWorking := false;  
     end;

网格不直接链接到数据库。数据被加载到内存(TClientDataSet)中,我只需要在内存中对数据进行排序,而不需要再次查询数据库。

谢谢

最佳答案

我尝试了你的示例,这解决了我的问题:

Grid.PageMode := False;

关于Delphi7 TMS TDBAdvGrid 单击列标题时对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713223/

相关文章:

delphi - 如何将 TreeView 的一部分复制到菜单

delphi - 如何在 Delphi XE2 中为平板电脑固定表格?

c# - Delphi 7 与 C# 表达式求值

delphi - 将 TPoupMenu 分配给 TAdvColumnGrid 中的就地编辑器

javascript - 如何在传单中投影像素坐标?

delphi - 保存动态列的列大小

delphi - 将自定义 CodeInsight 管理器注册到 C++Builder,无需初始化/终止部分

delphi - Delphi XE5 中的 Firemonkey。如何为托盘中的图标创建弹出菜单?

delphi - 如何在不禁用 UAC 的情况下在 Windows 7 上运行 Delphi 7?

Delphi:即使设置了 Delimiter,TStringList Delimiter 也始终是空格字符