【问题标题】:Kendo Treeview checked Get parent node on checking child nodesKendo Treeview checked 在检查子节点时获取父节点
【发布时间】:2016-01-20 10:09:28
【问题描述】:

enter image description here我正在尝试使用带有复选框的树视图来定义用户权限。 (2 个动作 - 启用/禁用的权利) 如何从父节点获取值(id)?

Kendo tree view

【问题讨论】:

    标签: kendo-ui telerik kendo-treeview


    【解决方案1】:

    此示例将返回所选节点的父 ID。

    treeView.select().parentNode().id;
    

    如果需要查找特定节点的父节点,则必须在select()函数中指定选择器:treeView.select($("search criteria"))

    如果你想在父级中循环,你可以这样做

    var parentNode = treeView.select().parentNode();
    while (parentNode) {
        //Add your parent logic here
        //...
    
        parentNode = parent.parentNode();
    }
    

    【讨论】:

      【解决方案2】:

      请尝试以下代码 sn-p。

      <!DOCTYPE html>
      <html>
      <head>
          <title>Jayesh Goyani</title>
          <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.1111/styles/kendo.common.min.css">
          <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.1111/styles/kendo.rtl.min.css">
          <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.1111/styles/kendo.default.min.css">
          <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.1111/styles/kendo.mobile.all.min.css">
      
          <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
          <script src="http://kendo.cdn.telerik.com/2015.3.1111/js/angular.min.js"></script>
          <script src="http://kendo.cdn.telerik.com/2015.3.1111/js/jszip.min.js"></script>
          <script src="http://kendo.cdn.telerik.com/2015.3.1111/js/kendo.all.min.js"></script>
      </head>
      <body>
          <div id="treeview"></div>
          <p id="result">No nodes checked.</p>
          <script>
              $(document).ready(function () {
                  $("#treeview").kendoTreeView({
                      checkboxes: {
                          checkChildren: true
                      },
      
                      check: onCheck,
      
                      dataSource: [{
                          id: 1, text: "1", expanded: true, items: [
                              {
                                  id: 2, text: "2", expanded: true, items: [
                                      { id: 3, text: "3" },
                                      { id: 4, text: "4" },
                                      { id: 5, text: "5" }
                                  ]
                              },
                              {
                                  id: 6, text: "6", expanded: true, items: [
                                      { id: 7, text: "7" },
                                      { id: 8, text: "8" },
                                  ]
                              },
                              {
                                  id: 9, text: "9", expanded: true, items: [
                                      { id: 10, text: "10" },
                                      { id: 11, text: "11" },
                                      { id: 12, text: "12", expanded: true, items: [{ id: 13, text: "13", expanded: true, items: [{ id: 14, text: "14" }, { id: 15, text: "15" }] }] }
                                  ]
                              }
                          ]
                      }]
                  });
              });
              // function that gathers IDs of checked nodes
              function checkedNodeIds(nodes, checkedNodes) {
                  for (var i = 0; i < nodes.length; i++) {
                      if (nodes[i].checked) {
                          getParentIds(nodes[i], checkedNodes);
                          checkedNodes.push(nodes[i].id);
                      }
      
                      if (nodes[i].hasChildren) {
                          checkedNodeIds(nodes[i].children.view(), checkedNodes);
                      }
                  }
              }
      
              function getParentIds(node, checkedNodes) {
                  if (node.parent() && node.parent().parent() && checkedNodes.indexOf(node.parent().parent().id) == -1) {
                      getParentIds(node.parent().parent(), checkedNodes);
                      checkedNodes.push(node.parent().parent().id);
                  }
              }
      
              // show checked node IDs on datasource change
              function onCheck() {
                  var checkedNodes = [],
                      treeView = $("#treeview").data("kendoTreeView"),
                      message;
      
                  checkedNodeIds(treeView.dataSource.view(), checkedNodes);
      
                  if (checkedNodes.length > 0) {
                      message = "IDs of checked nodes: " + checkedNodes.join(",");
                  } else {
                      message = "No nodes checked.";
                  }
      
                  $("#result").html(message);
              }
          </script>
      </body>
      </html>
      

      如果有任何问题,请告诉我。

      【讨论】:

      • 嗨 Jayesh 感谢您的帮助,如果它包含多个子节点,请告诉我如何获取父节点我的意思是父节点第一级>子节点第二级>,如果您想清除子节点,请再说一遍了解您可以查看我的代码或请点击(输入描述图片)
      • 嗨 Jayesh 感谢您的帮助,如果它包含多个子节点,请告诉我如何获取父节点我的意思是父节点第一级>子节点第二级>,如果您想清除子节点,请再说一遍了解您可以查看我的代码,或者如果我选择链接复选框,请点击(输入描述图片)我需要获取 SubMenuid、Menuid、Moduleid、SWid
      • 我已根据您的要求更新了我的上述帖子。
      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多