Primefaces 动态列 p:columns 对特定列进行排序
Primefaces dynamic columns p:columns sort specific columns
我有一个包含动态列的数据表,由 columnModel 定义。字符串 属性 链接到正确的字段(用于值输出)。排序字符串等于 属性,但有些列不应该排序,排序为 null 或 emtpy(两者都试过):
public class ColumnModel {
private String property;
private String sort;
private int width;
//GETTER
...
}
我使用该模型的列表来创建我的动态列。宽度的使用效果很好:
<p:dataTable value="#{bean.items}" var="item" ... >
<p:columns value="#{bean.columnModel}" var="column" sortBy="#{column.sort}" width="#{column.width}">
...
</p:columns>
</p:dataTable>
我的问题:
sortBy 不允许空值或空值。否则我会得到一个解析异常,它说它无法解析#{item.}。 primefaces 似乎在给定的排序字段之前自动添加 'item'(我的数据表变量)。
如何忽略某些列?
感谢您的回答!
将 primefaces 5.0.9 与 Wildfly 9.0.2 结合使用
Primefaces 在 5.1.3 和 5.2.0 版本中为 p:column(s)
添加了新属性:
- 可排序
- 可过滤
这是 link 已解决的问题:
https://code.google.com/archive/p/primefaces/issues/5021
示例 取决于我上面的代码:
public class ColumnModel {
private String property;
private boolean sortable;
private int width;
//GETTER
...
}
在 bean 中给定 List<ColumnModel> columnModel
:
<p:dataTable value="#{bean.items}" var="item" ... >
<p:columns value="#{bean.columnModel}" var="column" sortBy="#{item[column.property]}" field="#{column.property}" sortable="#{column.sortable}" width="#{column.width}">
...
</p:columns>
</p:dataTable>
我有一个包含动态列的数据表,由 columnModel 定义。字符串 属性 链接到正确的字段(用于值输出)。排序字符串等于 属性,但有些列不应该排序,排序为 null 或 emtpy(两者都试过):
public class ColumnModel {
private String property;
private String sort;
private int width;
//GETTER
...
}
我使用该模型的列表来创建我的动态列。宽度的使用效果很好:
<p:dataTable value="#{bean.items}" var="item" ... >
<p:columns value="#{bean.columnModel}" var="column" sortBy="#{column.sort}" width="#{column.width}">
...
</p:columns>
</p:dataTable>
我的问题: sortBy 不允许空值或空值。否则我会得到一个解析异常,它说它无法解析#{item.}。 primefaces 似乎在给定的排序字段之前自动添加 'item'(我的数据表变量)。
如何忽略某些列?
感谢您的回答!
将 primefaces 5.0.9 与 Wildfly 9.0.2 结合使用
Primefaces 在 5.1.3 和 5.2.0 版本中为 p:column(s)
添加了新属性:
- 可排序
- 可过滤
这是 link 已解决的问题:
https://code.google.com/archive/p/primefaces/issues/5021
示例 取决于我上面的代码:
public class ColumnModel {
private String property;
private boolean sortable;
private int width;
//GETTER
...
}
在 bean 中给定 List<ColumnModel> columnModel
:
<p:dataTable value="#{bean.items}" var="item" ... >
<p:columns value="#{bean.columnModel}" var="column" sortBy="#{item[column.property]}" field="#{column.property}" sortable="#{column.sortable}" width="#{column.width}">
...
</p:columns>
</p:dataTable>