拥有不同 权限的人对应生成 不同的treeview1
我的思路是这样的 先从数据库读出整个树,然后判断节点的value值 如果值小于某个值就删除
删除语句
TreeNode tmp = TreeView1.SelectedNode
if (tmp.Depth == 0)
TreeView1.Nodes.Remove(tmp);
else
{
TreeNode parentNode = (TreeNode)tmp.Parent;
parentNode.ChildNodes.Remove(tmp);
}现在的问题是 如何选定这些节点(value小于某个值的节点)
我的思路是这样的 先从数据库读出整个树,然后判断节点的value值 如果值小于某个值就删除
删除语句
TreeNode tmp = TreeView1.SelectedNode
if (tmp.Depth == 0)
TreeView1.Nodes.Remove(tmp);
else
{
TreeNode parentNode = (TreeNode)tmp.Parent;
parentNode.ChildNodes.Remove(tmp);
}现在的问题是 如何选定这些节点(value小于某个值的节点)
不添加到treview
private void InitTree(TreeNodeCollection Nds,string parentId)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["tree"];
dv.RowFilter="ParentId='" + parentId + "'" ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.Tag=drv["NodeId"].ToString();
tmpNd.Text=drv["NodeName"].ToString();
Nds.Add(tmpNd);
intId=drv["ParentId"].ToString();
InitTree(tmpNd.Nodes,tmpNd.Tag.ToString());
}
}
switch (treeView1.SelectedNode.Level)
{
case 0:
#####################
break;
case 1:
########################
break;
case 2:
###########################
break;
}
foreach (DataRow childrow in ds.Tables["DiQu_2"].Rows)
{
L2 = new TreeNode(childrow["mingcheng"].ToString(), childrow["id"].ToString());
L2.Expanded = false;
foreach (TreeNode n in Tv.Nodes)
{
if (n.Value == childrow["sid"].ToString())
{
n.ChildNodes.Add(L2);
childrow.Delete();
break;
}
}
}
protected void CreateTreeView(TreeNodeCollection treenode,DataTable datasource,int parentNodeId,int RolValue)
{
string fliter = string.Format("ParentNodeId={0} and RoleId>{1}", parentNodeId, RolValue);
DataRow[] drArr = datasource.Select(fliter);
foreach (DataRow dr in drArr )
{
TreeNode node = new TreeNode();
treenode.Add(node);
node.Text = dr["DisplayName"].ToString();
int NodeId = Convert.ToInt32(dr["NodeId"]);
CreateTreeView(node.ChildNodes, datasource, NodeId, RolValue);
} }
调用 CreateTreeView(TreeView1.Nodes,dt,0,1);
生成了树 但是有个问题
比如 一个节点的value为1
他的子节点有个value值为3的节点
现在我要把Value为3的节点显示出来 该怎么办