+ -
当前位置:首页 → 问答吧 → 单击DBGridEh列标题排序,提示记录集未打开错误。

单击DBGridEh列标题排序,提示记录集未打开错误。

时间:2011-10-18

来源:互联网

DBGridEh,column的TitleButton设为True,AutoSort设为True, SortLocal设为True,使用户单击列表头时自动排序,但是
单击DBGridEh列标题排序,提示记录集未打开错误。
如何在用户单击列标题后,通过判断记录集是否打开,来确定是否排序。

作者: seleron   发布时间: 2011-10-18

先将dbgrideh的enable属性设为false;
当数据集打开后,再将它设为true

作者: babydog01   发布时间: 2011-10-18

难道没有其他更好的办法?

作者: seleron   发布时间: 2011-10-18

那就改ehlib的原码吧.Delphi(Pascal) code


procedure TADOCommandTextDatasetFeaturesEh.ApplySorting(Sender: TObject;
  DataSet: TDataSet; IsReopen: Boolean);
begin
  if Sender is TCustomDBGridEh then
    if   TCustomDBGridEh(Sender).DataSource.DataSet.Active then  //这句是判断表是否打开
    if TCustomDBGridEh(Sender).SortLocal then
      SortDataInADODataSet(TCustomDBGridEh(Sender), TCustomADODataSet(DataSet))
    else
      inherited ApplySorting(Sender, DataSet, IsReopen);
end;

作者: babydog01   发布时间: 2011-10-18