0

我正在使用 dhtmlx 在 php 的 treeview 中填充 mysql 数据。一切都很好,除了当我使用getAllChecked()将所有项目检查为数组时,它显示标识符而不是节点的文本。你们中有人用过dhtmlx 吗,请您帮我获取 node 的文本而不是 id 吗?

4

2 回答 2

2

目前 Dhtmlx 没有提供获取被检查节点的树节点文本的方法。

但它确实有一种方法来获取所有检查的 ID,以及一种通过它们的 id 获取节点文本的方法。反过来,这是足够的信息来创建您自己的方法来为那些检查的人取回所有文本。

如果您不想自己写,欢迎您使用下面的方法。

以下是以下方法的作用:

  1. 使用 dhtmlx 的tree.getAllChecked()获取所有 Checked Node ID
  2. 将返回的字符串拆分为一个数组。
  3. 循环检查节点 ID 的数组并使用 dhtmlx 的tree.getItemText()来获取每个检查节点的文本。
  4. 在循环遍历它时会创建一个字符串或数组并返回它。

这是获取所选 dhtmlx 树节点的所有文本的函数。

/**
 * Provide a list of Names from those Tree Nodes Checked
 * param: tree  (dhtmlx tree object)
 * optional: asArray (bool)  whether or not to return as an array 
 * return [] or ","
 */
var getAllCheckedItemsText = function(tree, asArray){

    var items = tree.getAllChecked();
    var listOfIDs = (items != "")?items.split(','):"";
    var listOfNames = [];
    for (i = 0; i < listOfIDs.length; i++){
        listOfNames.push(tree.getItemText(listOfIDs[i]));           
    }
    return (asArray != undefined && asArray == true)?listOfNames:listOfNames.join(',');

}

如何使用:

传入您对树对象的引用作为参数并设置可选的“asArray”标志。根据“asArray”标志,您将获得名称作为数组或只是用逗号分隔名称的字符串。

于 2012-09-22T21:22:36.530 回答
0

您可以使用

 var text = tree.getItemText(id);
于 2010-06-24T08:32:14.433 回答