两者都几乎没有记录(大多数信息都可以在我检查过的用户指南中找到)。
该属性记录为
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
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();
。
答案 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),其中_是分隔符。因此,当您开始手动设置时,这整个概念会中断,导致您在问题中发布错误。