如何清除ListBox? (ZK)

时间:2013-08-27 19:13:23

标签: java zk

我有一个非常简单的问题。我很惊讶,找不到答案。 如何在ZK Framework中完全清除ListBox(org.zkoss.zul.ListBox)?

4 个答案:

答案 0 :(得分:3)

下面的代码会清除列表框,但如果使用模型,可能会导致问题:

lb.getItems().clear();

以下代码清除选择:

lb.clearSelection();

以下代码设置新模型,删除旧模型和所有项目。如果模型为空,列表框将为空

lb.setModel(model);

如果你想获得一套新的物品,最后一件应该是最好的 如果你有一个列表使用:

lb.setModel(new ListModelList<>(myList)); 

答案 1 :(得分:1)

如果您看到API

public java.util.List<Listitem> getItems()
  

返回所有Listitem的实时列表。实时我们的意思是您可以使用List界面直接添加或删除它们。换句话说,您可以通过直接操作返回的列表来添加或删除项目。

因此,从列表中删除会从ListBox中删除。

所以最终你的行将是listbox.getItems().clear();

答案 2 :(得分:0)

如果要清除所选索引,请使用:clearSelection();

答案 3 :(得分:0)

  • 即使使用setModel,列表框中的页码仍会显示前一页内容页面no.s
  • getItems.clear也不清除列表框中的页码

编辑:

我确实找到了一个解决方案: 为确保即使页码与列表项一起删除,一种方法是:

myListbox.setModel(new ListModelList()); //通过设置空模型来删除数据项;这必须在重置模具之前完成 myListbox.setMold(&#34;的默认&#34); //通过重置模具来删除页码

然后当您需要填充数据时,您必须将模具设置为分页和模型以及您的数据列表:

List res = myListData(); //要在列表框中填写的数据
myListbox.setMold(&#34;的寻呼&#34);
myListbox.setPageSize(15);
myListbox.setActivePage(0);
myListbox.setModel(new ListModelList(res));

另一种方法是控制寻呼控制器的可见性:

eventListbox.getPagingChild()调用setVisible(假);