我是 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/