Asp.net用TreeView方法

 

private void Page_Load(object sender, System.EventArgs e)

         {

              if(!this.IsPostBack)

              {

                   // this.PageBegin(true);

                   _empid=Convert.ToInt16(this.Empid);

                   BuildConstItems(TvwDoc);

                   TvwDoc.ExpandLevel=2;

              }

             

 

         }

//綁定目錄樹的所有數據,包括靜態節點和動態節點

         public void BuildConstItems(TreeView TvwTree)

         {

              TreeNode subnode1=new TreeNode();

              subnode1.Text="文件管理";

              subnode1.ID="BB";

              subnode1.ImageUrl="images/folder.gif";

              subnode1.ExpandedImageUrl="images/folderopen.gif";

              subnode1.NavigateUrl="";

              subnode1.Target="";

              TvwTree.Nodes.Add(subnode1);

              CreateDocTree(subnode1);

         }

//從數據庫讀取第一級目錄信息,分別加到目錄樹中,並調用其他方法將所有目錄綁定到目錄樹控價

         private void CreateDocTree(TreeNode node)

         {

              DocTree doctree=new DocTree();

              DataView dv=doctree.GetTreeNodeFolder(0);

              int nodecounts=dv.Count;

              for(int i=0;i<nodecounts;i++)

              {

                   int id=Convert.ToInt32(dv[i].Row[0].ToString());

                   int hifolder=Convert.ToInt32(dv[i].Row[2].ToString());

                   string foldername=dv[i].Row[15].ToString();

                   TreeNode tvnode=new TreeNode();

                   tvnode.Text=foldername;

                   tvnode.ID=Convert.ToString(id);

                   tvnode.ExpandedImageUrl="images/folderopen.gif";

                   tvnode.ImageUrl="images/folder.gif";

                   tvnode.NavigateUrl="";

                   tvnode.Target="";

                   node.Nodes.Add(tvnode);

                   LoadSubFolder(tvnode,id);

              }

         }

 //採用遞歸方法獲得指定目錄下的所有目錄信息,並綁定到該目錄節點下

         private void LoadSubFolder(TreeNode node,int hifolderid)

         {

              DocTree doctree=new DocTree();

              DataView dv=doctree.GetTreeNodeFolder(hifolderid);

              int nodecounts=dv.Count;

              if(nodecounts!=0)

              {

                   for(int i=0;i<nodecounts;i++)

                   {

                       int id=Convert.ToInt32(dv[i].Row[0].ToString());

                       int hifid=Convert.ToInt32(dv[i].Row[2].ToString());

                       string foldername=dv[i].Row[0].ToString();

                       TreeNode tvnode=new TreeNode();

                       tvnode.Text=foldername;

                       tvnode.ID=Convert.ToString(hifid);

                       tvnode.ImageUrl="images/folder.gif";

                       tvnode.ExpandedImageUrl="images/folderopen.gif";

                       tvnode.NavigateUrl="";

                       tvnode.Target="";

                       node.Nodes.Add(tvnode);

                       LoadSubFolder(tvnode,id);

                   }

              }

         }

 

//得到DataView的類

public class DocTree

     {

         public DocTree()

         {

              //

              // TODO: 在此處添加構造函數邏輯

              //

         }

         public DataView GetTreeNodeFolder(int hifolderid)

         {

              FileData data=(new FileA()).GetFolderTree();

              DataView dv=data.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;

              dv.RowFilter="hifolderid="+hifolderid;

              return dv;

         }

         public DataView GetTreeNodeFolderII(int folderid)

         {

              FileData data=(new FileA()).GetFolderTree();

              DataView dv=data.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;

              dv.RowFilter="forderid="+folderid;

              return dv;

         }

     }

//獲取DATASET數據的類

         public FileData GetFolderTree()

         {

              dsCommand=new SqlDataAdapter("fmLoadFolderTree",CONN);

              if(dsCommand==null)

              {

                   throw new System.ObjectDisposedException(GetType().FullName);

              }

              dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;

              FileData data=new FileData();

              dsCommand.Fill(data,FileData.FMDOCFOLDER_TABLE);

              return data;

 

         }

一共三步,分三層,數據表裏要設父文件夾和子文件夾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章