DBGrid中的排序(以为简单的近来试试)(100分)

  • 主题发起人 主题发起人 0738
  • 开始时间 开始时间
0

0738

Unregistered / Unconfirmed
GUEST, unregistred user!
用AdoDataSet,因为显示的需要我更改了Field的Text值,我的问题是我怎样根据显示
的Text来排序呢?对Ado设IndexName显然不行,它排序的结果是根据数据库中保存的
数据,而不是我显示在客户端的Text
 
使用临时记录集
 
我记得 TAdoQuery 有 Sort 的属性,AdoDataSet 也有吧,
try it !

 
>>更改了Field的Text值???
Field有Text值???是DisplayLabel吧?如果是改了DisplayLabel,
可以根据DBGrid->Column->FieldName来判断嘛。
ADO的排序可以通过设ADODateSet的Sort属性来解决。
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
s:String;
begin
s:=Column.FieldName+' ASC '; //按升序排 加DESC就是按降序排
ADODataSet1.Sort := s;
end;
 
to:杜宝
Field有Text值???不是吧,Field的Text都不知道,看看帮助吧
to:tfp
sort只对实际值有效,可我要的是按照Text来排序啊
to:速查手册
>>使用临时记录集
怎么使用呢?
 
不了解!
 
呵呵,为了混分,没看清楚,见笑见笑!
TField对象是有Text属性的。
按我理解你的意思是在OnGetText事件是做了点手脚,
但这个Text应该与你的TField.Value有关。
不如你把Text的取值范围贴出来看看。
我想到的两种方法:
一是利用ADOQuery从你的表中再查出一个字段做为辅助,到时候按这个排充
二是利用第三方的DBGrid了。

 
有没有更通用一些的方法呢?
 
接受答案了.
 
后退
顶部