我想要显示启用选择倍数的<tr:table value="#{mybean.tableValue} binding="#{mybean.tableBinding}">
。
我使用List进行集合,当我从带有部分触发器的<tr:selectManyCheckbox>
valueChangeListener中选择一个值时,将从数据库获取值。
对于返回的每一行,如果某个值为true,我希望此行在<tr:table value="#{mybean.tableValue} binding="#{mybean.tableBinding}">
我认为问题是当 valueChangeEvent 运行时我的绑定值没有更新,尽管我把 binding.setValue 数据库的结果(我检查了{ {1}}不等于binding.getRowCount()
),然后选择的值不正确)
知道绑定rowCount为什么不等于table的值?
更新:
mybean.tableValue.size()
谢谢!
答案 0 :(得分:0)
解决!我更改了valueChangeListener:
public void valuesChangeListener(ValueChangeEvent event) {
if (event != null) {
List<Integer> valores = (List<Integer>) event.getNewValue();
data2Values.addAll(databaseDAO.search(valores));
tableBinding.getSelectedRowKeys().clear;
tableBinding.setValue(data2Values);
for (int x = 0; x < tableBinding.getRowCount(); x++) {
dataEntity row = (dataEntity) tableBinding.getRowData(x);
tableBinding.setRowIndex(x);
Object key = tableBinding.getRowKey();
if (row.isTrue()) {
tableBinding.getSelectedRowKeys().add(key);
} else {
tableBinding.getSelectedRowKeys().remove(key);
}
}
tableBinding.setVar("item");
FacesContext context = FacesContext.getCurrentInstance();
context.renderResponse();
}
}