TreeView t = new TreeView(); TreeNode td=new System.Web.UI.WebControls.TreeNode("text","value"); //这样绑定就可以了 t.Nodes.Add(td);
function CreateClassTree(aParent: TTreeNode; Level: integer; SLevel, SText,Scode: TStrings;aClassTree:TTreeNodes;aLevelWord:String): boolean; var I:integer; TempNode:TTreeNode; begin Result:=False; //TempNode:=TTreeNode.Create(Nil); For i:=0 to Slevel.Count-1 do begin //添加子结点 //是否符合级别 if length(Slevel.Strings[i])=(level+1)*3 then if level=0 then begin TempNode:=aclassTree.Add(aparent,sText.Strings[i]+'('+Scode.Strings[i]+')'); CreateClassTree(tempnode,level+1,Slevel,stext,Scode,aclasstree,Slevel.Strings[i]); Result:=True; end else begin if copy(slevel.Strings[i],0,level*3)=aLevelWord then begin TempNode:=aclassTree.AddChild(aparent,sText.Strings[i]+'('+Scode.Strings[i]+')'); CreateClassTree(tempnode,level+1,Slevel,stext,sCode,aclasstree,Slevel.Strings[i]); Result:=True; end; end; end; //tempnode.Free; end; //深度优先算法建子树 Function CreateBomTree(aParent:TTreeNode;aTblBomCName,aMFieldName,aCFieldName,aRootName:String;aAdoConn:tAdoconnection;aTree:TTreeNOdes):Boolean; var i:integer; TempNode:TTreeNode; TempQry:TAdoQuery; begin Result:=False; TempQry:=TAdoQuery.Create(nil); Try //找子结点 TempQry.Active:=False; TempQry.SQL.Clear; TempQry.SQL.Add('Select '+aCFieldName); TempQry.SQL.Add(' From '+aTBlBomCName); Tempqry.sql.Add(' where '+aMFieldName+'='''+aRootName+''''); TempQry.Active:=true; //递归找子树 if TempQry.RecordCount>0 then begin TempQry.FindFirst; for i:=1 to TempQry.RecordCount do begin TempNode:=aTree.AddChild(aParent,TempQry.Fieldbyname(aCFieldName).AsString); CreateBomTree(TempNode,atblBomcName,aMFieldName,aCFieldName,TempNode.Text,aAdoconn,aTree); TempQry.Next; end; end; result:=True; Finally TempQry.Free; end; end;
TreeView t = new TreeView();
TreeNode td=new System.Web.UI.WebControls.TreeNode("text","value"); //这样绑定就可以了
t.Nodes.Add(td);
function CreateClassTree(aParent: TTreeNode;
Level: integer; SLevel, SText,Scode: TStrings;aClassTree:TTreeNodes;aLevelWord:String): boolean;
var
I:integer;
TempNode:TTreeNode;
begin
Result:=False; //TempNode:=TTreeNode.Create(Nil); For i:=0 to Slevel.Count-1 do
begin
//添加子结点
//是否符合级别
if length(Slevel.Strings[i])=(level+1)*3 then
if level=0 then
begin
TempNode:=aclassTree.Add(aparent,sText.Strings[i]+'('+Scode.Strings[i]+')');
CreateClassTree(tempnode,level+1,Slevel,stext,Scode,aclasstree,Slevel.Strings[i]);
Result:=True;
end
else
begin
if copy(slevel.Strings[i],0,level*3)=aLevelWord then
begin
TempNode:=aclassTree.AddChild(aparent,sText.Strings[i]+'('+Scode.Strings[i]+')');
CreateClassTree(tempnode,level+1,Slevel,stext,sCode,aclasstree,Slevel.Strings[i]);
Result:=True;
end;
end;
end;
//tempnode.Free; end; //深度优先算法建子树 Function CreateBomTree(aParent:TTreeNode;aTblBomCName,aMFieldName,aCFieldName,aRootName:String;aAdoConn:tAdoconnection;aTree:TTreeNOdes):Boolean;
var
i:integer;
TempNode:TTreeNode;
TempQry:TAdoQuery;
begin
Result:=False;
TempQry:=TAdoQuery.Create(nil); Try
//找子结点
TempQry.Active:=False;
TempQry.SQL.Clear;
TempQry.SQL.Add('Select '+aCFieldName);
TempQry.SQL.Add(' From '+aTBlBomCName);
Tempqry.sql.Add(' where '+aMFieldName+'='''+aRootName+'''');
TempQry.Active:=true; //递归找子树
if TempQry.RecordCount>0 then
begin
TempQry.FindFirst;
for i:=1 to TempQry.RecordCount do
begin
TempNode:=aTree.AddChild(aParent,TempQry.Fieldbyname(aCFieldName).AsString);
CreateBomTree(TempNode,atblBomcName,aMFieldName,aCFieldName,TempNode.Text,aAdoconn,aTree);
TempQry.Next;
end;
end;
result:=True;
Finally
TempQry.Free;
end; end;
<asp:TreeView ID="TreeView1" runat="server" Font-Size="12px" ForeColor="Black" ShowLines="True"
ExpandDepth="0">
<ParentNodeStyle ImageUrl="~/Images/Menu/leaf.gif" />
<RootNodeStyle ImageUrl="~/Images/Menu/folderOpen.gif" />
<LeafNodeStyle ImageUrl="~/Images/Menu/file.JPG" />
</asp:TreeView>
//后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bindTv();
}
}
DataTable ds;
public void bindTv()
{
string sql = "select * from cj_sjd order by currentid";
ds = ST_DBA_YJ.DataTable(sql, "gat_zhpt");
AddTree(0, (TreeNode)null);
}
public void AddTree(int ParentID, TreeNode pNode)
{ DataView dvTree = new DataView(ds);
string Fstr = "ParentID='" + ParentID + "'";
dvTree.RowFilter = Fstr;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{
Node.Value = Row["currentid"].ToString();
Node.Text = Row["name"].ToString();
Node.SelectAction = TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(Node);
AddTree(Int32.Parse(Row["currentid"].ToString()), Node);
}
else
{
Node.Value = Row["currentid"].ToString();
Node.Text = Row["name"].ToString();
Node.NavigateUrl = Row["URL"].ToString();
Node.Target = "main";
Node.SelectAction = TreeNodeSelectAction.Expand;
pNode.ChildNodes.Add(Node);
AddTree(Int32.Parse(Row["currentid"].ToString()), Node);
}
}
}[/code
{
SqlConnection SqlCon = DB.getSqlCon();
SqlCommand cmdbig = new SqlCommand("select BigClassID,BigClassName from BigClass", SqlCon);
SqlDataAdapter sda = new SqlDataAdapter(cmdbig);
DataSet ds = new DataSet();
sda.Fill(ds, "BigClass"); SqlCommand cmdsmall = new SqlCommand("select BigClassID,SmallClassID,SmallClassName from SmallClass", SqlCon);
sda.SelectCommand = cmdsmall;
sda.Fill(ds, "SmallClass"); DataRelation drl = new DataRelation ("bigsmall",ds.Tables["BigClass"].Columns["BigClassID"],ds.Tables["SmallClass"].Columns["BigClassID"]);
ds.Relations.Add(drl);
SqlCon.Close();
InitTree(ds);
}
protected void InitTree( DataSet ds)
{
this.TreeView.Nodes.Clear();
foreach (DataRow drBig in ds.Tables["BigClass"].Rows)
{
TreeNode RootNode = new TreeNode(drBig["BigClassName"].ToString(),drBig["BigClassID"].ToString());
RootNode.Value = drBig["BigClassID"].ToString();
RootNode.Expanded = true;
RootNode.NavigateUrl = "~/ClassList.aspx?BigClassID=" + RootNode.Value;
RootNode.Target = "myframe";
this.TreeView.Nodes.Add(RootNode);
foreach (DataRow drSmall in drBig.GetChildRows("bigsmall"))
{
TreeNode SubNode = new TreeNode(drSmall["SmallClassName"].ToString(), drSmall["SmallClassID"].ToString());
SubNode.Value = drSmall["SmallClassID"].ToString();
SubNode.Expanded = true; SubNode.NavigateUrl = "~/CardList.aspx?SmallClassID=" + SubNode.Value;
SubNode.Target = "myframe";
RootNode.ChildNodes.Add(SubNode);
}
}
}