2 001001 管理局机关 001001
3 001001012 处室 001001
4 001001026 直属 001001
5 001003 渤海钻井总公司 001003
6 001003001 机关 001003
7 001003002 机关直属 001003
8 001003003 钻井一公司 001003
9 001003004 钻井二公司 001003
10 001003005 钻前公司 001003
11 001003006 固井公司 001003
12 001003007 管具公司 001003
13 001003008 物资配送中心 001003
14 001003009 钻井设备维修中心001003
15 001003010 海胜集团 001003
16 001003011 待分配 001003
17 001003014 综合服务大队 001003
18 001003018 工程运输一公司 001003
19 001003019 工程运输二公司 001003
20 001003020 华龙实业公司 001003
21 001004 黄河钻井总公司 001004
22 001004001 机关 001004
23 001004002 机关直属 001004
24 001004003 钻井三公司 001004
25 001004004 钻井四公司 001004
26 001004005 钻井五公司 001004
27 001004006 钻前公司 001004
28 001004007 管具公司 001004如果是这样的结构,谁能给个方法形成一个树型.
3 001001012 处室 001001
4 001001026 直属 001001
5 001003 渤海钻井总公司 001003
6 001003001 机关 001003
7 001003002 机关直属 001003
8 001003003 钻井一公司 001003
9 001003004 钻井二公司 001003
10 001003005 钻前公司 001003
11 001003006 固井公司 001003
12 001003007 管具公司 001003
13 001003008 物资配送中心 001003
14 001003009 钻井设备维修中心001003
15 001003010 海胜集团 001003
16 001003011 待分配 001003
17 001003014 综合服务大队 001003
18 001003018 工程运输一公司 001003
19 001003019 工程运输二公司 001003
20 001003020 华龙实业公司 001003
21 001004 黄河钻井总公司 001004
22 001004001 机关 001004
23 001004002 机关直属 001004
24 001004003 钻井三公司 001004
25 001004004 钻井四公司 001004
26 001004005 钻井五公司 001004
27 001004006 钻前公司 001004
28 001004007 管具公司 001004如果是这样的结构,谁能给个方法形成一个树型.
解决方案 »
- 关于编辑事件时的参数问题
- 散分了
- 论坛有两个帐号,有时候需要切换登录。每次输入有点麻烦,能不能通过cookies实现切换id登录?说下思路就行拉!
- 怎样将剪贴板内容粘贴下来
- 关于模版列不能更新的问题
- winform如何获取某行某列的控件,让它获得焦点。已经知道是哪一行。
- 我的VS在工具栏选择添加移除项就会无响应。。。。。。。。。
- 使用RichTextBox控件只能保存和打开*.rtf文件?
- FileSystemWatcher监视文件变化,为什么一次changed变化中事件方法调用2次!?在线等待!!
- gridview 保存到 excel c# .net
- 在页面里有个iframe,iframe里面的页面每隔20秒刷新一次,刷新的时候要IE下面状态栏没有进度条,怎么做?
- 关闭另一个窗体
第2列本身的id作为tag属性,逐个加载上去啊,读一条记录就去找他的父结点xxx(fatherid==xxx.tag.tostring())
{
if (tnParent == null) return null;
if (tnParent.Tag.ToString() == strValue) return tnParent;//找到父结点 TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.Nodes)//根节点下有有子节点,继续遍历
{
tnRet = FindNode(tn, strValue);
if (tnRet != null) break;
}
return tnRet;
}
调用findnodeTreeNode node = FindNode(treeViewFolder.Nodes[0],fatherName);//找父结点
if (node != null)
{
node.Nodes.Add(childNode);//把该子节点加到树上
node.Collapse();
}
public void InitTree(TreeNodeCollection Nds, string parentId) //, string flag
{
TreeNode tmpNd; //建立一个节点
DataRow[] rows = ds.Tables[0].Select("c='" + parentId + "'");foreach (DataRow row in rows)
{
//通过查询得到父节点,依次循环
tmpNd = new TreeNode(); //声明一个新的节点
tmpNd.Name = row["a"].ToString();//节的名字是a.ToString()
tmpNd.Text = row["b"].ToString();//节点的内容是b.ToString()
tmpNd.Collapse();
Nds.Add(tmpNd);//把节点加入到节点集合中
InitTree(tmpNd.Nodes, tmpNd.Name);//, flag//把加入的节点作为新的节点集合再次调用 名字是a.ToString()
}
}
没用是这么调用的InitTree(treeView1.Nodes, "001001");
然后新建一个子节点对象,parentNode.add(childNode)要注意的是node.Nodes得到的节点是他的下一级的所有子节点,而他子节点的子节点不在里面的
_Talbe.Columns.Add("ID");
_Talbe.Columns.Add("IdText");
_Talbe.Columns.Add("Name");
_Talbe.Columns.Add("Pid");
_Talbe.Rows.Add(new object[] { "2", "001001", "管理局机关", "001001" });
_Talbe.Rows.Add(new object[] { "3", "001001012", "处室", "001001" });
_Talbe.Rows.Add(new object[] { "4", "001001026", "直属", "001001" });
_Talbe.Rows.Add(new object[] { "5", "001003", "渤海钻井总公司", "001003" });
_Talbe.Rows.Add(new object[] { "6", "001003001", "机关", "001003" });
_Talbe.Rows.Add(new object[] { "7", "001003002", "机关直属", "001003" });
_Talbe.Rows.Add(new object[] { "8", "001003003", "钻井一公司", "001003" });
_Talbe.Rows.Add(new object[] { "9", "001003004", "钻井二公司", "001003" });
_Talbe.Rows.Add(new object[] { "10", "001003005", "钻前公司", "001003" });
_Talbe.Rows.Add(new object[] { "11", "001003006", "固井公司", "001003" });
_Talbe.Rows.Add(new object[] { "12", "001003007", "管具公司", "001003" });
_Talbe.Rows.Add(new object[] { "13", "001003008", "物资配送中心", "001003" });
_Talbe.Rows.Add(new object[] { "14", "001003009", "钻井设备维修中心","001003" });
_Talbe.Rows.Add(new object[] { "15", "001003010", "海胜集团", "001003" });
_Talbe.Rows.Add(new object[] { "16", "001003011", "待分配", "001003" });
_Talbe.Rows.Add(new object[] { "17", "001003014", "综合服务大队", "001003" });
_Talbe.Rows.Add(new object[] { "18", "001003018", "工程运输一公司", "001003" });
_Talbe.Rows.Add(new object[] { "19", "001003019", "工程运输二公司", "001003" });
_Talbe.Rows.Add(new object[] { "20", "001003020", "华龙实业公司", "001003" });
_Talbe.Rows.Add(new object[] { "21", "001004", "黄河钻井总公司", "001004" });
_Talbe.Rows.Add(new object[] { "22", "001004001", "机关", "001004" });
_Talbe.Rows.Add(new object[] { "23", "001004002", "机关直属", "001004" });
_Talbe.Rows.Add(new object[] { "24", "001004003", "钻井三公司", "001004" });
_Talbe.Rows.Add(new object[] { "25", "001004004", "钻井四公司", "001004" });
_Talbe.Rows.Add(new object[] { "26", "001004005", "钻井五公司", "001004" });
_Talbe.Rows.Add(new object[] { "27", "001004006", "钻前公司", "001004" });
_Talbe.Rows.Add(new object[] { "28", "001004007", "管具公司", "001004" });
treeView1.Nodes.Clear();
for (int i = 0; i != _Talbe.Rows.Count; i++)
{
string _Key =_Talbe.Rows[i][1].ToString(); string _Type = _Key.Substring(0,6);
TreeNode[] _TypeNodeList =treeView1.Nodes.Find(_Type,true); if (_TypeNodeList.Length != 0)
{
_TypeNodeList[0].Nodes.Add(_Key, _Talbe.Rows[i][2].ToString());
}
else
{
treeView1.Nodes.Add(_Key, _Talbe.Rows[i][2].ToString());
}
}
FindNode(treeView1.?, "001");
这个?的地方不知道写什么啊
id name parentid
001001 管理局机关 001001
private void TreeDataBind()
{
this.TreeView1.Nodes.Add(new TreeNode("根目录", FirstCode));
TreeDataBind(this.TreeView1.Nodes[0]);
} private void TreeDataBind(TreeNode node)
{
if (node.Depth == 0)
node.Expand();// = true;
else
node.Collapse();// = false;
string sql = "";
TreeNodeCollection nodes = null;
if (node == null)
{
sql = "select * from table where parent='" + id + "'";
nodes = this.TreeView1.Nodes;
}
DataSet ds = DataFunction.DataFunction.FillDataSet(sql);
foreach (DataRow r in ds.Tables[0].Rows)
{
TreeNode newNode = new TreeNode(r["description"].ToString(), r["code"].ToString());
nodes.Add(newNode);
TreeDataBind(newNode);
}
}
if (!IsPostBack)
{
BindJG();
}
private void BindJG()
{
DataSet ds = new DataSet();
..
DataTable dtb = ds.Tables[0];
TreeNode root = new TreeNode();
root.Value = "0";
root.Text = "";
root.ImageUrl = "../images/folder.gif";
root.Expanded = true;
this.TreeView1.Nodes.Add(root);
initTree(dtb, "", root);
this.TreeView1.ExpandAll();
}
protected void initTree(DataTable dt, string nFatherid, TreeNode fatherNode)
{
DataView dv = new DataView(dt); if (nFatherid == "")
dv.RowFilter = "depth='1'";
else
dv.RowFilter = "shangjjgbh='"+nFatherid+"'";
foreach (DataRowView Row in dv)
{
TreeNode node = new TreeNode();
if (fatherNode.Value == "0")//根节点
{
node.Value = Row["XTBH"].ToString();
node.Text = Row["mc"].ToString();
node.NavigateUrl = "";
node.ImageUrl = "../images/folder.gif";
fatherNode.ChildNodes.Add(node);
initTree(dt, Row["XTBH"].ToString(), node);//递归
}
else
{
node.Text = Row["mc"].ToString();
node.Value = Row["XTBH"].ToString();
node.ImageUrl = "../images/jg.gif";
fatherNode.ChildNodes.Add(node); }
} }