首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-06-02 
TreeView的二级科目如何按排序来显示?二级科目不按顺序显示,如下面的12)11):1)江苏 //点此,则Edit1不显示-

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) ;

热点排行