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;
}
一共三步,分三層,數據表裏要設父文件夾和子文件夾