treeview的使用

1.找不到TreeNode 

使用TreeView,需要添加namespaceusing Microsoft.Web.UI.WebControls;

2.遍历TreeView节点

下面是一个利用TreeView控件生成树状导航的示例。可以无限生成多级菜单。

树型结构表Para_Item

Item_ID(节点ID   Item_Name(节点名)   Parent_ID(父结点ID

    1                         All                  0

    2                         aaa                 1

    3                         bbb                 1

    4                         aaa_1               2

    5                         bbb_1               3               

private void Page_Load(object sender, System.EventArgs e)

{

String str=ConfigurationManager. ConnectionStrings["sqlcnn"].ConnectionString;

 //定义数据库连接

SqlConnection con = new SqlConnection();

//打开连接

con.Open();

//获取Faq树形目录节点

SqlDataAdapter da = new SqlDataAdapter("select * from Para_item",con);

DataSet DataSet_Tree=new DataSet();

da.Fill(DataSet_Tree);

this.ViewState["DataSet_Tree"]=DataSet_Tree;

//调用递归函数,完成树形结构的生成

AddTree(0, (TreeNode)null);

}

//递归添加树的节点参数ParentID为树的最大父结点

public void AddTree(int ParentID,TreeNode pNode)

{

  DataSet DataSet_Tree=(DataSet) this.ViewState["DataSet_Tree"];

  DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);

  //过滤ParentID,得到当前的所有子节点 ParentID为父节点ID

  DataView_Tree.RowFilter =  "[Parent_ID] = " + ParentID;

  //循环递归

  foreach(DataRowView Row in DataView_Tree)

  {

    //声明节点

    TreeNode Node=new TreeNode() ;

    //绑定超级链接

    Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();

    //开始递归

    if(pNode == null)

    {

      //添加根节点

      Node.Text = Row["item_name"].ToString();

      TreeView_Tree.Nodes.Add(Node);

      Node.Expanded=true; //节点状态展开

      AddTree(Int32.Parse(Row["item_id"].ToString()), Node);    //再次递归

    }

    else

    {  

      //添加当前节点的子节点

      Node.Text = Row["item_name"].ToString();

      pNode.Nodes.Add(Node);

      Node.Expanded = true; //节点状态展开

      AddTree(Int32.Parse(Row["item_id"].ToString()),Node);     //再次递归

    }

  }

  //关闭连接

  con.Close();

}

3.控制父结点的开/合状态

TreeView_Tree.GetNodeFromIndex("1").Expanded=false/true;

4.清除某个父结点下的所有子节点

TreeView_IndexLeft.GetNodeFromIndex("1").Nodes.Clear();

5.设置所选节点,如选中第二个节点 

function SetSelNode() 

 TreeView_Tree.selectedNodeIndex="1"; 

6.得到所选节点的TextIDNodeData 

function GetAttribute() 

 alert(TreeView_Tree.getTreeNode(TreeView_Tree.selectedNodeIndex).getAttribute("Text")); 

//替换TextIDNodeData,可分别得到所选节点的IDNodeData 

7.修改节点属性,如修改第一个节点的Text 

function ModifyNode() 

 var node=TreeView_Tree.getTreeNode("0"); 

 node.setAttribute("Text","第一个节点"); 

8.添加节点 

function AddNode() 

 var node=TreeView_Tree.createTreeNode(); 

 node.setAttribute("Text","第一个节点"); 

 TreeView_Tree.add(node);     

9.TreeView 中的SelectedIndexChange不执行

AutoPostBack=trueSelectedIndexChange才能被执行。 

10.判断 TreeView 的一个节点下是否有子节点 

if(SelectNode.Nodes.Count==0)

  //该节点没有字节点 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值