p:treeTable的rowKey和TreeNode.rowKey代表什么?

时间:2018-05-20 00:21:07

标签: primefaces

两者都几乎没有记录(大多数信息都可以在我检查过的用户指南中找到)。

该属性记录为

  

RowKey应该是数据模型中的唯一标识符,并由数据表用于查找所选的标识符   行。您可以使用rowKey属性或绑定数据模型来定义此密钥   它实现了org.primefaces.model.SelectableDataModel。

我不明白的是:

  • rowKey上的p:dataTable属性而p:treeTable上没有TreeNode属性,但root用于构建树表rowKey org.primefaces.component.api.UITree 1}}有一个rowKey属性。
  • 然后,String selection = params.get(clientId + "_selection");上使用了另一个属性TreeRenderer.decodeSelection

    • 一次用于JSF和
    • 中指定的值
    • 一次作为选择来自TreeNode.rowKey java.lang.ArrayIndexOutOfBoundsException: -307459552 at java.util.ArrayList.elementData(ArrayList.java:422) at java.util.ArrayList.get(ArrayList.java:435) at org.primefaces.component.api.UITree.findTreeNode(UITree.java:245) at org.primefaces.component.api.UITree.setRowKey(UITree.java:116) at org.primefaces.component.treetable.TreeTableRenderer.encodeNode(TreeTableRenderer.java:525) 作为逗号分隔的所选行列表

    如果第一眼看上去没有任何共同点的rowKey值和所选行的列表(以逗号分隔的字符串)如何使用相同的属性?

  • SelectableDataModel设置为对象的hashCode(保证唯一性)时,它似乎被用作数组访问的索引,可以预测结束于

    TreeNode.rowKey
  • module.exports = class DataAccessLayer { constructor() { this.con = mysql.createConnection({ host: ("host.com"), user: ("asdfg"), password: ("zxcvb"), database: ("DB_example") }); this.con.connect(function (err) { if (err) throw err; console.log("Connected to DB"); }); } getUserBySenderId(senderId) { this.con.query("SELECT sender_id,first_name,last_name,creation_date " + "FROM USER " + "WHERE sender_id = '" + senderId + "'", function (err, result, fields) { if (err) throw err; console.log(result); }); } 可能会参与误解,具体取决于上述文件是否也适用于function showName () { let showName = document.querySelectorAll("input.test"); showName.forEach(function(elem){ alert(elem.name); }) } showName();

1 个答案:

答案 0 :(得分:2)

我再次阅读了你的问题,我得到的结论是你把事情搞混了(如果我错了,请纠正我。)

首先,根据我的经验和文档,我没有看到p:treeTable中使用的SelectableDataModel,也没有在其上定义rowKey属性(检查了6.1和6.2文档) 。您在有关定义的问题中发布的引用来自 p:dataTable

无需在UITree上随处使用rowKey属性。它由组件在内部设置,并使用渲染时间将data-rowkey属性放在单个节点上。将在选择步骤中再次使用此属性的值。节点的data-rowkey值被发送到服务器,并在那里被解码以找到服务器端树中的相应节点。模型的嵌套/层次结构以rowkey的值编码。例如。 0_2_1是根节点(0),然后是其第三个子节点(2)及其第二个子节点(1),其中_是分隔符。因此,当您开始手动设置时,这整个概念会中断,导致您在问题中发布错误。