Grid中的排序功能

原创 2007年09月18日 12:42:00
 procedure DBGridSort(FSortColumn: TColumnEh;out pbASC:boolean);
var
  OldIndex: string;
begin
//  if (FSortColumn.Grid.DataSource = nil) then Exit;
//  if not (FSortColumn.Grid.DataSource.DataSet.Active) then Exit;
  OldIndex := TClientDataset(FSortColumn.Grid.DataSource.DataSet).IndexName;
  if OldIndex <> '' then
  begin
    TClientDataset(FSortColumn.Grid.DataSource.DataSet).IndexName := '';
    TClientDataset(FSortColumn.Grid.DataSource.DataSet).DeleteIndex(OldIndex);
  end;
  case pbASC of
    True:
      begin
        if FSortColumn.Field.FieldKind = fkLookUp then
          TClientDataset(FSortColumn.Grid.DataSource.DataSet).AddIndex('px', FSortColumn.Field.KeyFields, [ixDescending]) //已经是升序就按降序排列
        else if FSortColumn.Field.FieldKind = fkData then
          TClientDataset(FSortColumn.Grid.DataSource.DataSet).AddIndex('px', FSortColumn.Field.FieldName, [ixDescending]);
      end;
  else //否则按升序排列
    begin
      if FSortColumn.Field.FieldKind = fkLookUp then
        TClientDataset(FSortColumn.Grid.DataSource.DataSet).AddIndex('px', FSortColumn.Field.KeyFields, [ixPrimary])
      else if FSortColumn.Field.FieldKind = fkData then
        TClientDataset(FSortColumn.Grid.DataSource.DataSet).AddIndex('px', FSortColumn.Field.FieldName, [ixPrimary]);
    end;
  end; {end case}
  TClientDataset(FSortColumn.Grid.DataSource.DataSet).IndexName := 'px';
  pbASC := not pbASC;
end;

相关文章推荐

C#异常抛出和排序功能

  • 2013年01月28日 08:55
  • 2KB
  • 下载

Gridview自动排序功能

注意两点: 1.要将gridview的AllowSorting属性置为true,同时设置OnSorting事件 2.在OnSorting事件中对排序的列设定SortExpression属性   ...

jQuery制作div板块拖动层排序功能

  • 2014年02月25日 16:16
  • 10KB
  • 下载

C#接口实现排序功能

  • 2012年12月11日 17:24
  • 22KB
  • 下载

CListCtrl 实现排序功能(数字和字母)

通过CListCtrl显示全部的进程信息,并且点击CListCtrl控件的头按钮 会进行升序或是降序进程排序。 一、其中 CListCtrl控件的排序有几个要点这里列出来: 1. BOOL CLi...

web 网页 表头排序功能

直接上源码 --------------------------------------------------------JSP                         ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Grid中的排序功能
举报原因:
原因补充:

(最多只允许输入30个字)