读书人

TreeView的二级科目怎么按排序来显示

发布时间: 2012-06-02 14:16:14 作者: rapoo

TreeView的二级科目如何按排序来显示?
二级科目不按顺序显示,如下面的12)11):
1)江苏 //点此,则Edit1不显示
---12)徐州 //点此,则Edit1=徐州
---11)南京 //点此,则Edit1=南京
2)河南 //点此,则Edit1不显示
---21)郑州 //点此,则Edit1=郑州
---22)洛阳 //点此,则Edit1=洛阳

我想让二级科目按顺序显示,如何显示?显示如下:
1)江苏 //点此,则Edit1不显示
---11)南京 //点此,则Edit1=南京
---12)徐州 //点此,则Edit1=徐州
2)河南 //点此,则Edit1不显示
---21)郑州 //点此,则Edit1=郑州
---22)洛阳 //点此,则Edit1=洛阳



代码如下:
procedure TfrmUWaterQftzd.FormShow(Sender: TObject);
begin
with adopian1 do
begin
Close;
SQl.Clear;
SQL.Add('select * from pian1');
Open;
end;
adopian1.First ;
while not adopian1.Eof do
begin
//添加根节点
node2:= TreeView1.Items.Add(node1,adopian1.FieldByName('省份').AsString) ;
with adopian2 do
begin
Close;
SQl.Clear;
SQL.Add('select * from zu1 where 省份 = :a order by 地区');
Parameters.ParamByName('a').Value:=adopian1.FieldByName('省份').AsString;
Open;
end;
adopian2.First ;
while not adopian2.Eof do
begin
node2.ImageIndex := 1;
//添加子节点
TreeView1.Items.AddChildFirst(node2,adopian2.fieldbyname('地区').asstring) ;
adopian2.next;
end;
adopian1.next;
end;
end;


[解决办法]
问题出在这句上
TreeView1.Items.AddChildFirst(node2,adopian2.fieldbyname('地区').asstring) ;

Sql语句已经排好你想要的顺序
AddChildFirst 这个让节点的顺序变了
用AddChild就行

这句改成
TreeView1.Items.AddChild(node2,adopian2.fieldbyname('地区').asstring) ;

读书人网 >.NET

热点推荐