一个母版
里面使用了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是直接拖下来的控件。

解决方案 »

  1.   

    此时treeview还没有节点,
    要先绑定一下. this.TreeView1.DataBind();
      

  2.   

    对了。绑定了以后第2句报错。
    TreeView1.Nodes.Remove(TreeView1.Nodes[1]);第一句通过。哈哈。居然把所有的节点都删除了。
    节点样式:
    -管理
     -人员管理
        -会员管理
        -非会员管理
     -商品管理
        -上架
        -下架
        -等
    象这样的节点应该怎么写后面的Remove才能准确的删除?
      

  3.   

    上面的是全部删除的
    如果只删除第一个和第二个的话
    TreeView1.Nodes.Remove(TreeView1.Nodes[0]);
    TreeView1.Nodes.Remove(TreeView1.Nodes[0]);写两次就可以
      

  4.   

    this.TreeView1.Nodes.Clear();
    ??????
    全部删除了啊。
    跟TreeView1.Nodes.Remove(TreeView1.Nodes[0]);效果一样的。
      

  5.   

    象这种样式
    -管理
     -人员管理
        -会员管理
        -非会员管理
     -商品管理
        -上架
        -下架
        -等
     -网站管理
        -更新模板
        -服务器信息
        -等
    power==1的时候。
    删除下面商品管理与网站管理分节点。
    而只显示
    -管理
     -人员管理
        -会员管理
        -非会员管理
    应该怎么做啊?
      

  6.   

    treeview1.nodes[0].nodes[1].clear();//删除管理下面的商品管理
    treeview1.nodes[0].nodes[2].clear();//删除管理下面的网站管理
      

  7.   

    那应该是 this.TreeView1.Nodes[0].ChildNodes.RemoveAt(0);
            this.TreeView1.Nodes[0].ChildNodes.RemoveAt(0);
      

  8.   

    上面的有误,应该是1
     this.TreeView1.Nodes[0].ChildNodes.RemoveAt(1);
            this.TreeView1.Nodes[0].ChildNodes.RemoveAt(1);
      

  9.   

    pt1314917() 的方法提示错误
    我把大写字母改了还是有问题 
     
     CS0117: “System.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义cpp2017(慕白兄) :
    调试成功。