Treeview 加载问题(简单)(50分)

  • 主题发起人 主题发起人 kukow
  • 开始时间 开始时间
K

kukow

Unregistered / Unconfirmed
GUEST, unregistred user!

ID,name,upid
1,A,0
2,B,0
3,C,0
4,a1,1
5,a11,4

结果
A
¦____a1
¦ ¦_____a11
B
¦
C

要求:不要写N个内循环.加载速度快如何写?
最好写Delphi源码.
问题关键:
如何根据upid找到父节点

问题不难,求高手教教我...感谢.
 
procedure TMainFrm.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
TempNode: TTreeNode;
begin
TempNode := Node;
while TempNode.Parent <> nil do
TempNode := TempNode.Parent;
end;
 
public void AddTree(string FuncParent,TreeNode pNode)
{
string strFilter="upid='"+FuncParent+"'";
DataView dv=new DataView(ds.Tables[0]);
dv.RowFilter=strFilter;
foreach( DataRowView Row in dv)
{
TreeNode Node=new TreeNode();
Node.ID=Row["ID"].ToString();
Node.Text=Row["Name"].ToString();
Node.Target="main";
if(pNode==null) TreeView1.Nodes.Add(Node); //添加根节点
else pNode.Nodes.Add(Node); //添加子节点
AddTree(Row["ID"].ToString(),Node);
}
}

在Page_Load事件中加入代码:
SqlDataAdapter da=new SqlDataAdapter('SELECT * FROM table',cn);
da.Fill(ds);
AddTree("0",(TreeNode)null);
 
后退
顶部