读书人

关于dbgrid排序的有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

关于dbgrid排序的问题
如何对dbgrid按照title进行排序,不要那种简单的,要点击任何一列都可以排序,让adoquery进行排序有可以.
原来记得“老妖”有个很经典的代码,但是在电脑上找不到了

[解决办法]
自用极品代码:

添加定义:

C/C++ code
    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)
{
这里写排序代码;
}

读书人网 >C++ Builder

热点推荐