p:dataTable

时间:2018-08-05 06:56:15

标签: jsf primefaces datatable

由于我已经说过我的英语可能很不好,所以,我很抱歉。 我是JSF的新手,在rowkey的{​​{1}}属性上遇到麻烦。它根本无法识别行ID,因为找不到我放入DataTable中的“ var”。请遵循以下代码:

p:dataTable

在甚至启动服务器测试IDE之前,我已经告诉我在“行键”行中他找不到我放置的引用,我进行了很多搜索,但找不到与我相同的错误。 我该怎么办?我做错什么了吗?我怎么会犯这个错误?

我在JSF 2.2上使用PrimeFaces 6.2(应提供版本信息和实现)

2 个答案:

答案 0 :(得分:0)

由于您没有为List listaCategorias中的元素提供代码,所以我需要做一些假设,但是假设这些元素具有属性idCategoria并且该属性对于每个元素都是唯一的,rowKey必须是String或可以隐式转换为String的东西。元素的Class必须具有一个公用的getIdCategoria()方法,该方法返回唯一的String对象或可以隐式转换为String的对象。

如果检查提交可编辑数据表时发送的请求,您将看到每个更改的元素的rowKey值,从而允许服务器端代码确定该元素所引用的模型中的哪个对象。

答案 1 :(得分:0)

@snakedog首先,我想说我的英语不好,所以很抱歉。

在“类别”列表中,有一个公共的getId(),它返回一个唯一的id,它返回的此id的类型很长,因为在数据库中此id的列的类型是bigint。

我必须使其返回String才能使rowKey正常工作?问题是rowKey无法获得对我在var属性中所做的“类别”对象的引用,而且我还注意到当我打开标签<p:datatable>并现在关闭时(因此<p: datatable ... /> ),rowKey可以获取var引用,但是如果我打开标签(因此<p:datatable> ... </p:datatable>),则rowKey不能再获取var引用。