获取到一个字符串...
xx/xx/xx/xx.xx
比如
str ="新建文件夹1/新建文件夹2/新建文件夹3/aa.txt"
str2 ="新建文件夹1/新建文件夹2/新建文件夹4/bb.txt"
节点的成次是这样的:
----------------------------
新建文件夹1
新建文件夹2
新建文件夹3
aa.txt
新建文件夹4
bb.txt
----------------------------
3和4平级都是2的子节点. 2是1的子节点. 类似windows 资源管理器.那样. 是文件夹就创建个文件夹节点, 是子文件夹 就在该文件夹下创建个子文件夹节点.
动态的. 给个方法.无论下面有多少个子文件夹.
问题来了。
如何动态写? 字符串不固定. 可以把str通过\字符分割成数组.只有最后一项包含"."符号
但是如何动态画到treeview中. 层次结构要一致. 具体样式参考Windows资源管理器.!!
xx/xx/xx/xx.xx
比如
str ="新建文件夹1/新建文件夹2/新建文件夹3/aa.txt"
str2 ="新建文件夹1/新建文件夹2/新建文件夹4/bb.txt"
节点的成次是这样的:
----------------------------
新建文件夹1
新建文件夹2
新建文件夹3
aa.txt
新建文件夹4
bb.txt
----------------------------
3和4平级都是2的子节点. 2是1的子节点. 类似windows 资源管理器.那样. 是文件夹就创建个文件夹节点, 是子文件夹 就在该文件夹下创建个子文件夹节点.
动态的. 给个方法.无论下面有多少个子文件夹.
问题来了。
如何动态写? 字符串不固定. 可以把str通过\字符分割成数组.只有最后一项包含"."符号
但是如何动态画到treeview中. 层次结构要一致. 具体样式参考Windows资源管理器.!!
private void initTree()
{
DataRow[] drs = dt.Select("ParentID=0", "ModulePosition asc");
for (int i = 0; i < drs.Length; i++)
{
TreeNode tn = new TreeNode( drs[i][1].ToString()); if (drs[i][2].ToString() != "")
{
tn.NavigateUrl = drs[i][2].ToString();
tn.Target = "fright";
}
else
{
tn.SelectAction = TreeNodeSelectAction.Select;
}
tn.Expanded = false;
tn.ImageUrl = "~/images/" + drs[i][5].ToString();
this.TreeView1.Nodes.Add(tn);
LoadTree(tn, Convert.ToInt32(drs[i][0]));
}
} private void LoadTree(TreeNode tn, int parentid)
{
DataRow[] drs = dt.Select("ParentID=" + parentid, "ModulePosition asc");
for (int i = 0; i < drs.Length; i++)
{
TreeNode child = new TreeNode( drs[i][1].ToString());
if (drs[i][2].ToString() != "")
{
child.NavigateUrl = drs[i][2].ToString();
child.Target = "fright";
}
else
{
}
tn.SelectAction = TreeNodeSelectAction.Select;
child.Expanded = false;
child.ImageUrl = "~/images/" + drs[i][5].ToString();
tn.ChildNodes.Add(child);
LoadTree(child,Convert.ToInt32(drs[i][0]));
}
}
假如我取的字符串: string str1="ss/dd/ff/aa.cs";
string str2="ss/dd/aa.cs"; 怎么样动态的将他们画到Treeview 上面
要动态的方法, 不是只针对与他俩. 取到的字符串是活的.
想办法把这个字符串构造成对象的形式 。
ss/dd/ff/aa.cs"
主要构造 ss 和 dd 的关系 及位置 即可。