我有一个非常简单的问题。我很惊讶,找不到答案。如何在 ZK 框架中彻底清除 ListBox (org.zkoss.zul.ListBox)?
问问题
7037 次
4 回答
3
下面的代码清除列表框,但如果使用模型,可能会导致问题:
lb.getItems().clear();
下面的代码清除选择:
lb.clearSelection();
下面的代码设置一个新模型,删除旧模型和所有项目。如果模型为空,则列表框将为空
lb.setModel(model);
如果您想获得一套新的项目,最后一个应该是最好的。
如果您有他们的列表,请使用:
lb.setModel(new ListModelList<>(myList));
于 2013-08-27T19:20:57.983 回答
1
如果您看到API
public java.util.List<Listitem> getItems()
返回所有 Listitem 的实时列表。实时我们的意思是您可以直接使用列表界面添加或删除它们。换句话说,您可以通过直接操作返回的列表来添加或删除项目。
因此,从此列表中删除将从 ListBox 中删除。
所以最终你的路线是listbox.getItems().clear();
于 2013-08-27T19:20:25.580 回答
0
如果要清除选定的索引,请使用:clearSelection();
于 2013-08-27T19:14:37.117 回答
0
- 即使使用
setModel
,页码Listbox
仍然显示以前的内容页码 getItems.clear()
也不会清除中的页码Listbox
编辑:
我确实为此找到了一个解决方案:为了确保即使是页码也与列表项一起删除,一种方法是:
// removes the data items by setting an empty model
// this has to be done before resetting the mold
myListbox.setModel(new ListModelList<String>());
// removes the page numbers by resetting the mold
myListbox.setMold("<b>default</b>");
然后当您需要填充数据时,您必须将模具设置为分页,并使用您的数据列表设置模型:
List<String> res= myListData(); //the data to be filled in the listbox
myListbox.setMold("<b>paging</b>");
myListbox.setPageSize(15);
myListbox.setActivePage(0);
myListbox.setModel(new ListModelList<String>(res));
另一种方法是控制分页控制器的可见性:
eventListbox.getPagingChild().setVisible(false);
于 2014-07-16T09:34:58.507 回答