ID Name
1
11
1101
1102
1103
12
1201
1202
1203
1204
13
1301
1302
1303
2
21
2102
2105
22
2211
2213
222
2221
223
2231
2232
请问下 这样的树怎么实现阿, 数据库表就一个ID 跟 名字???? 小弟不才,希望大侠们能有实例代码最好.
1
11
1101
1102
1103
12
1201
1202
1203
1204
13
1301
1302
1303
2
21
2102
2105
22
2211
2213
222
2221
223
2231
2232
请问下 这样的树怎么实现阿, 数据库表就一个ID 跟 名字???? 小弟不才,希望大侠们能有实例代码最好.
解决方案 »
- dropdownlist 联动 ,第二个dropdownlist的取值总是(第一个选项)怎么解决?
- 请问如何读取xml节点中的某个值?
- 关于GridView的两个属性的为题
- 业务逻辑层的问题
- 关于禁止同一帐号重复登陆,怎么样调用那个守护线程
- 本人有一套进销存系统和Mrp2的源代码出售(C#---IPS)适合于电子和珠宝行业,不知诸位是否有兴趣?
- 利用javascript 调用 web service 能否返回数据集?
- 不同用户数据库的系统如何实现单点登录
- 求助一个Timer的问题
- 显示格式化问题,请各位近来看看,谢谢!!
- 关于 ViewState 的应用
- 关于radiobuttonlist控件事件响应的问题
或者这种
要好一些private void InitTree(TreeNodeCollection Nds,int parentid)
{
DataView dv = new DataView();
TreeNode tmpNd = null;
dv.Table = ds.Tables[0];
dv.RowFilter = String.Format("parentid={0}", parentid);
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = (string)drv["sortname"];//节点名称
tmpNd.NavigateUrl = String.Format("?id={0}", drv["id"]);//节点URL
//tmpNd.ImageUrl = ""; //节点图片
if (parentid == 0)
tmpNd.Expanded = true;
else
tmpNd.Expanded = false;
Nds.Add(tmpNd);
InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
}
}
参考
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Windows;public partial class TreeView : System.Web.UI.Page
{
public List<ModelTree> TreeList = null;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["TreeData"] == null)
{
TreeList = new List<ModelTree>(){
new ModelTree(){TId="0001",TName="董事会",IsParent=1 },
new ModelTree(){TId="0002",TName="监事会",IsParent=1 },
new ModelTree(){TId="0003",TName="工会",IsParent=1 },
new ModelTree(){TId="000101",TName="生产科",IsParent=0 },
new ModelTree(){TId="000102",TName="地质科",IsParent=0 },
new ModelTree(){TId="000201",TName="测量科",IsParent=0 },
new ModelTree(){TId="000301",TName="工会干事科",IsParent=0 }
};
Session["TreeData"] = TreeList;
}
else
{
TreeList = Session["TreeData"] as List<ModelTree>;
}
this.Tv1.Nodes.Clear();
this.Tv1.Nodes.Add(new TreeNode() { Text = "总部门" });
InitTree(TreeList, "000", this.Tv1.Nodes[0]); }
int count = 0;
public void InitTree(List<ModelTree> list, string ParentId, TreeNode Ptn)
{
List<ModelTree> lmt = new List<ModelTree>();
lmt = list.Where(N => N.TId.ToString().Contains(ParentId.ToString()) && N.TId != ParentId).ToList();
if (count == 0)
{
lmt = lmt.Where(I => I.IsParent == 1).ToList();
}
if (lmt.Count > 0)
{
count++;
foreach (ModelTree mt in lmt)
{
TreeNode Tn = new TreeNode();
Tn.Text = mt.TName + " <a href='NodeAdd.aspx?Type=add&TID=" + mt.TId.ToString() + "\'><font color='red'>添加节点</font></a>"
+ " <a href='NodeAdd.aspx?Type=upd&TID=" + mt.TId.ToString() + "\'><font color='black'>更新节点</font></a>";
Tn.Value = mt.TId.ToString();
Ptn.ChildNodes.Add(Tn);
InitTree(list, mt.TId.ToString(), Tn);
}
}
}
}简单的DEMO