一个母版
里面使用了ASP.NET自带的一个Treeview控件
其数据内容使用的Web.sitemap内的数据
现有2个用户登陆。
权限不同。
想利用session中的权限数值的不同来控制某些节点的显示与否。
测试多次。不成功。
提示错误:索引超出范围。必须为非负值并小于集合大小。参数名: index
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label3.Text = Session["login_name"].ToString();
Label4.Text = Session["login_address"].ToString();
if(Convert.ToInt32(Session["login_power"])==1)
{
TreeView1.Nodes.Remove(TreeView1.Nodes[0]);
TreeView1.Nodes.Remove(TreeView1.Nodes[1]);
}
}
}
treeview是直接拖下来的控件。
里面使用了ASP.NET自带的一个Treeview控件
其数据内容使用的Web.sitemap内的数据
现有2个用户登陆。
权限不同。
想利用session中的权限数值的不同来控制某些节点的显示与否。
测试多次。不成功。
提示错误:索引超出范围。必须为非负值并小于集合大小。参数名: index
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label3.Text = Session["login_name"].ToString();
Label4.Text = Session["login_address"].ToString();
if(Convert.ToInt32(Session["login_power"])==1)
{
TreeView1.Nodes.Remove(TreeView1.Nodes[0]);
TreeView1.Nodes.Remove(TreeView1.Nodes[1]);
}
}
}
treeview是直接拖下来的控件。
要先绑定一下. this.TreeView1.DataBind();
TreeView1.Nodes.Remove(TreeView1.Nodes[1]);第一句通过。哈哈。居然把所有的节点都删除了。
节点样式:
-管理
-人员管理
-会员管理
-非会员管理
-商品管理
-上架
-下架
-等
象这样的节点应该怎么写后面的Remove才能准确的删除?
如果只删除第一个和第二个的话
TreeView1.Nodes.Remove(TreeView1.Nodes[0]);
TreeView1.Nodes.Remove(TreeView1.Nodes[0]);写两次就可以
??????
全部删除了啊。
跟TreeView1.Nodes.Remove(TreeView1.Nodes[0]);效果一样的。
-管理
-人员管理
-会员管理
-非会员管理
-商品管理
-上架
-下架
-等
-网站管理
-更新模板
-服务器信息
-等
power==1的时候。
删除下面商品管理与网站管理分节点。
而只显示
-管理
-人员管理
-会员管理
-非会员管理
应该怎么做啊?
treeview1.nodes[0].nodes[2].clear();//删除管理下面的网站管理
this.TreeView1.Nodes[0].ChildNodes.RemoveAt(0);
this.TreeView1.Nodes[0].ChildNodes.RemoveAt(1);
this.TreeView1.Nodes[0].ChildNodes.RemoveAt(1);
我把大写字母改了还是有问题
CS0117: “System.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义cpp2017(慕白兄) :
调试成功。