怎么做treeview控件的动态生成 节点是从数据库获得的,具体该 如何实现,详细点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&q=%E4%BA%8C%E5%8F%89%E6%A0%91%E9%80%92%E5%BD%92&meta=&aq=f public void bindtree() { DataSet NavBardata = new DataSet(); string useraccouts = Session["USERACCOUNTS"].ToString(); NavBardata = BLL.SYSDB.Navbar_view.GetList(" useraccounts='" + useraccouts + "'"); int[] gmid = new int[50]; //用来记录表中的gmid字段中的数据,因为在NavBardata中的gmid字段有很多重复,是为了不重复加载功能组到TreeView上。 bool flag = true; int j = 0; navBar.Nodes.Clear(); if (NavBardata.Tables[0].Rows.Count == 0) { Label1.Text = "对不起,您所拥有的角色已被删除或被关闭,请与系统管理员联系!"; } foreach (DataRow item in NavBardata.Tables[0].Rows) //item指向表中记录的下一行。 { flag = true; if (j == 0) { gmid[j] = Convert.ToInt32(item["gmid"]); //j++; } else { for (int k = 0; k < j; k++) if (Convert.ToInt32(item["gmid"]) == gmid[k]) { flag = false; break; } } if (flag == true) { if (j != 0) { gmid[j] = Convert.ToInt32(item["gmid"]); } j++; TreeNode RootNode = new TreeNode(); RootNode.Text = item["gmname"].ToString(); if (item["gmiconlink"].ToString().Trim() != "" && item["gmiconlink"].ToString() != null) { RootNode.ImageUrl = item["gmiconlink"].ToString(); } RootNode.SelectAction = TreeNodeSelectAction.Expand; RootNode.CollapseAll(); navBar.Nodes.Add(RootNode); foreach (DataRow litem in NavBardata.Tables[0].Rows) { if (Convert.ToInt32(litem["gmid"]) == Convert.ToInt32(item["gmid"])) { TreeNode SubNode = new TreeNode(); SubNode.Text = litem["bmname"].ToString(); if (item["bmiconlink"].ToString().Trim() != "" && item["bmiconlink"].ToString() != null) { SubNode.ImageUrl = litem["bmiconlink"].ToString(); } SubNode.NavigateUrl = litem["bmpagelink"].ToString(); SubNode.Target = "rightFrame"; RootNode.ChildNodes.Add(SubNode); } } } } }这是我在项目中用到的,你可以试着改改。 就是递归,你使用Google或者Baidu应该能找到你需要的内容 用存储架构查询用户的注册的所有信息 Asp2.0 关于Treeview单击问题 使用什么控件在网页上播放.rm或.mpeg格式的文件 用htmlencode函数编码字符串存到sqlserver数据库的问题!急! 想用前端javasprict写一段代码,获取DropdownList得值,如何做啊 Asp.net中TreeView终极解决方案! 好书推荐 从服务器外的共享路径下载文件 难难难! 关于asp.net 的一些问题,高手解决 发现同事的程序错误,该怎么办? Access数据库 怎样实现待条件的嵌套查询语句 (急急急急急)大侠们 用户控件中的Repeater控件删除某行不刷新的问题?
{
DataSet NavBardata = new DataSet();
string useraccouts = Session["USERACCOUNTS"].ToString();
NavBardata = BLL.SYSDB.Navbar_view.GetList(" useraccounts='" + useraccouts + "'");
int[] gmid = new int[50]; //用来记录表中的gmid字段中的数据,因为在NavBardata中的gmid字段有很多重复,是为了不重复加载功能组到TreeView上。
bool flag = true;
int j = 0;
navBar.Nodes.Clear();
if (NavBardata.Tables[0].Rows.Count == 0)
{
Label1.Text = "对不起,您所拥有的角色已被删除或被关闭,请与系统管理员联系!";
}
foreach (DataRow item in NavBardata.Tables[0].Rows) //item指向表中记录的下一行。
{
flag = true;
if (j == 0)
{
gmid[j] = Convert.ToInt32(item["gmid"]);
//j++;
}
else
{
for (int k = 0; k < j; k++)
if (Convert.ToInt32(item["gmid"]) == gmid[k])
{
flag = false;
break;
}
}
if (flag == true)
{ if (j != 0)
{
gmid[j] = Convert.ToInt32(item["gmid"]);
}
j++;
TreeNode RootNode = new TreeNode();
RootNode.Text = item["gmname"].ToString();
if (item["gmiconlink"].ToString().Trim() != "" && item["gmiconlink"].ToString() != null)
{
RootNode.ImageUrl = item["gmiconlink"].ToString();
}
RootNode.SelectAction = TreeNodeSelectAction.Expand;
RootNode.CollapseAll();
navBar.Nodes.Add(RootNode);
foreach (DataRow litem in NavBardata.Tables[0].Rows)
{
if (Convert.ToInt32(litem["gmid"]) == Convert.ToInt32(item["gmid"]))
{
TreeNode SubNode = new TreeNode();
SubNode.Text = litem["bmname"].ToString();
if (item["bmiconlink"].ToString().Trim() != "" && item["bmiconlink"].ToString() != null)
{
SubNode.ImageUrl = litem["bmiconlink"].ToString();
}
SubNode.NavigateUrl = litem["bmpagelink"].ToString();
SubNode.Target = "rightFrame";
RootNode.ChildNodes.Add(SubNode);
}
}
}
}
}这是我在项目中用到的,你可以试着改改。