zoukankan      html  css  js  c++  java
  • TreeView 一些总结

    1、收缩其他已点过的节点

    View Code
    /// <summary>
    /// 收缩其他已点过的节点
    /// </summary>
    protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
    TreeNodeCollection ts
    = null;
    if (e.Node.Parent == null)
    {
    ts
    = ((TreeView)sender).Nodes;
    }
    else
    ts
    = e.Node.Parent.ChildNodes;
    foreach (TreeNode node in ts)
    {
    if (node != e.Node)
    {
    node.Collapse();
    }
    }
    }

     

    2、设置节点收缩展开时的图片文件

    View Code
    /// <summary>
    /// 设置节点收缩展开时的图片文件
    /// </summary>
    protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
    e.Node.ImageUrl
    = "/images/folder_Open.gif";
    }
    protected void TreeView1_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
    {
    e.Node.ImageUrl
    = "/images/folder_Close.gif";
    }

    3、查找指定节点以及它的所有子节点

    View Code
    /// <summary>
    /// 查找指定节点以及它的所有子节点
    /// </summary>
    /// <param name="tnParent"></param>
    /// <param name="tnList"></param>
    private void FindNode(TreeNode tnParent, ref List<TreeNode> tnList)
    {
    tnList.Add(tnParent);
    foreach (TreeNode tn in tnParent.ChildNodes)
    {
    FindNode(tn,
    ref tnList);
    }
    }

    4、删除选择的节点以及它的所有子节点

    View Code
    /// <summary>
    /// 删除选择的节点以及它的所有子节点
    /// </summary>
    protected void btnDelNode_Click(object sender, EventArgs e)
    {
    if (this.TreeView1.SelectedNode != null)
    {
    List
    <TreeNode> tnList = new List<TreeNode>();
    FindNode(
    this.TreeView1.SelectedNode, ref tnList);
    List
    <int> idList = new List<int>();
    tnList.ForEach(t
    => idList.Add(Convert.ToInt32(t.Value)));
    //删除所有节点,如果只删除选择节点用this.TreeView1.SelectedNode.Parent.ChildNodes.Remove(this.TreeView1.SelectedNode);
    tnList.ForEach(t => t.Parent.ChildNodes.Remove(t));

    //删除数据库中相应数据
    //....
    }
    }

    5、在选择的节点下面添加子节点

    View Code
    ///在选择的节点下面添加子节点
    TreeNode tn = new TreeNode("节点名称", "保存到数据库后的节点ID");
    tn.ImageUrl
    = "/images/page.gif";
    this.TreeView1.SelectedNode.ImageUrl = "/images/folder_Open.gif";
    this.TreeView1.SelectedNode.ChildNodes.Add(tn);
    this.TreeView1.SelectedNode.Expand();

    6、JS获取所有选中节点的值 (把节点的值保存在ToolTip,点击节点时获取这个值)

    .aspx

    View Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <mce:script language="javascript" type="text/javascript"><!--
    function init1() {
    var getAllNodes
    = "";
    var tree
    = document.getElementById("treeView1").getElementsByTagName("Input");
    for (var i = 0; i < tree.length; i++) {
    if (tree[i].type == "checkbox" && tree[i].checked) {
    if (tree[i].getAttribute("title", 2) != ""){
    getAllNodes
    = getAllNodes + tree[i].nextSibling.innerHTML + ";";
    }
    }
    }
    alert(getAllNodes);
    //所有选中节点的值
    }

    // --></mce:script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:TreeView ID="treeView1" runat="server" EnableClientScript="False" ShowExpandCollapse="False"
    OnClick
    ="init1(this)">
    </asp:TreeView>
    </div>
    </form>
    </body>
    </html>

    .aspx.cs

    View Code
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    DataTable dt
    = GetDataTable();
    DataRow[] rows
    = dt.Select();
    foreach (DataRow row in rows)
    {
    TreeNode nd
    = new TreeNode();
    nd.Text
    = row["name"].ToString();
    nd.Value
    = row["id"].ToString();
    nd.ToolTip
    = row["id"].ToString();
    nd.ShowCheckBox
    = true;
    treeView1.Nodes.Add(nd);
    }
    }
    }
    DataTable GetDataTable()
    {
    System.Data.DataTable dt
    = new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(
    new System.Data.DataColumn("id", typeof(System.Int32)));
    dt.Columns.Add(
    new System.Data.DataColumn("name", typeof(System.String)));
    dr
    = dt.NewRow();
    dr[
    0] = 1;
    dr[
    1] = "广东";
    dt.Rows.Add(dr);
    dr
    = dt.NewRow();
    dr[
    0] = 2;
    dr[
    1] = "广西";
    dt.Rows.Add(dr);
    return dt;
    }
  • 相关阅读:
    分布式爬虫
    前端页面展示
    fillter根据value来匹配字段
    element ui 怎么去修改el-date-picker的时间
    element ui,input框输入时enter健进行搜索
    element ui 里面的table怎么弹出一个框让表中数据点击出现弹框
    修改数据结构记录,将同级数据改成父子集数据
    h5的复制功能的使用,Clipboard.js的使用,主要是在app里面使用
    在安卓手机下按钮会悬浮在键盘上,怎么解决vue.js
    last-child为啥不生效
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2086974.html
Copyright © 2011-2022 走看看