您的位置:首页 > 其它

用递归方法把资料绑定到TreeView控件,显示文档目录

2009-12-12 13:21 393 查看
代码

using System.Collections.Generic;
using System.Reflection;
using System.Data;
partial class ViewFolder: System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
GetNotes();
}
}

private void GetNotes()
{
//根节点
TreeNode tn=new TreeNode("我的文档", "0", this.ControlPath + "images/folder0.gif");
int FolderControlID = DocumentController.GetTabId(this.PortalId, "ViewDocument");
tn.NavigateUrl = Globals.NavigateURL(FolderControlID, "", "FolderId=0");
TreeFolder.Nodes.Add(tn);

DataTable dt=null;
try
{
dt = DocumentController.GetListFolder(UserId);
}

catch (Exception exc)
{
//Module failed to load
Exceptions.ProcessModuleLoadException(this, exc);
}
//增加子节点
IntiTree(TreeFolder.Nodes , dt, 0);

TreeNode dustbin = new TreeNode("垃圾箱", "-1");
dustbin.ImageUrl = this.ControlPath + "images/Dustbin.gif";
TreeFolder.Nodes.Add(dustbin);
}
//递归增加子节点
private void IntiTree(TreeNodeCollection Nds,DataTable dt, int parentId)
{
DataView dv=new DataView();
TreeNode tmpNd; //创建临时节点

dv.Table = dt;
dv.RowFilter = "ParentFolderId=" + parentId; //筛选数据
int FolderControlID = DocumentController.GetTabId(this.PortalId, "ViewDocument");

foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
int FolderId=Convert.ToInt32(drv["FolderId"]); //当前节点的ID号
tmpNd.Value=FolderId.ToString();
tmpNd.Text=drv["FolderName"].ToString();

string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
tmpNd.NavigateUrl = navUrl + drv["FolderId"].ToString() + "')";

tmpNd.ImageUrl = "images/folder1.gif";
tmpNd.Expanded = false; //节点是否展开
//tmpNd.Target="main"; //节点重定向的方向
Nds[Nds.Count-1].ChildNodes.Add(tmpNd); //将临时节点添加到TreeView菜单中
IntiTree(Nds[Nds.Count-1].ChildNodes,dt,FolderId); //递归调用,进行遍历
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐