补充一句,在不改变控件的情况下,自己去接管这个排序(不知道是否可以满足楼主的要求)
仅供参考(控制第一列的排序)
procedure TMAINFORM.DataGrid2ColumnClick(Sender: TObject; Column: TTreeListColumn);
begin
if Column.Index = 0 then
begin
if (B.DataSet.Order = '') or
(StringUtils.Length(B.DataSet.Order) =
StringUtils.Length(DataGrid2.Columns[Column.Index].FieldName)) then
begin
B.DataSet.Order := SysUtils.UpperCase(DataGrid2.Columns[Column.Index].FieldName) + ' Desc';
end
else
begin
if SysUtils.UpperCase(B.DataSet.Order) =
SysUtils.UpperCase(DataGrid2.Columns[Column.Index].FieldName) then
B.DataSet.Order := SysUtils.UpperCase(DataGrid2.Columns[Column.Index].FieldName) + ' Desc'
else
B.DataSet.Order := SysUtils.UpperCase(DataGrid2.Columns[Column.Index].FieldName);
end;