关于dbgrid排序的问题
如何对dbgrid按照title进行排序,不要那种简单的,要点击任何一列都可以排序,让adoquery进行排序有可以.
原来记得“老妖”有个很经典的代码,但是在电脑上找不到了
[解决办法]
自用极品代码:
添加定义:
TField *FSortField; void __fastcall SetSortField(TField *Value); __property TField *SortField = {read=FSortField,write=SetSortField};
[解决办法]
DBGrid1TitleClick事件中写
TADOQuery* temp=(TADOQuery*)DBGrid2->DataSource->DataSet;
//temp=NULL;
if(flag==1)//当前是升序
{
temp->Sort=Column->FieldName+" DESC";
flag=0;
}
else if(flag==0)//当前是降序
{
temp->Sort=Column->FieldName+" ASC";
flag=1;
}
这样就可以了。
DBgridEh->字段的TitleButton为true并且DBgridEh->optionEh的dghAutoSortMarking为true时,在title上会出现排序三角形。
void __fastcall TForm1::DBGridEh1TitleClick(TColumnEh *Column)
{
这里写排序代码;
}