Java 使用ZK删除所有选定的表行
我有一个ZK网格,其中我在每一行上生成随机数。每行由一个复选框和数字本身组成 我想有一个按钮,删除所有选中复选框的行。以下是“删除”按钮的事件处理程序:Java 使用ZK删除所有选定的表行,java,zk,Java,Zk,我有一个ZK网格,其中我在每一行上生成随机数。每行由一个复选框和数字本身组成 我想有一个按钮,删除所有选中复选框的行。以下是“删除”按钮的事件处理程序: deleteButton.addEventListener(Events.ON_CLICK, new EventListener() { public void onEvent(Event evt) { Iterator<Component> selected
deleteButton.addEventListener(Events.ON_CLICK,
new EventListener() {
public void onEvent(Event evt) {
Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator();
System.out.println("Deleted: ");
while (selected.hasNext()) {
Checkbox c = (Checkbox) selected.next();
if (c.isChecked()) {
System.out.print(c.getId());
System.out.println(" from row " + c.getParent().getId());
c.getParent().detach(); // detach the checked row
}
}
}
});
deleteButton.addEventListener(Events.ON_单击,
新的EventListener(){
公共无效事件(事件evt){
所选迭代器=randomTable.queryAll(“行复选框”).Iterator();
System.out.println(“删除:”);
while(selected.hasNext()){
复选框c=(复选框)选中。下一步();
如果(c.isChecked()){
System.out.print(c.getId());
System.out.println(“从行”+c.getParent().getId());
c、 getParent().detach();//分离选中的行
}
}
}
});
但是它只删除第一个选中的行,即使它找到了所有其他选中的行
我对ZK还是新手。有什么想法吗?我想出了一个解决办法。事实证明,如果我使用中间列表来存储要删除的行,
detach()
对所有行都有效
无论如何,请随意分享任何关于它为什么不起作用的提示+1.任何捐款
以下是更新的代码:
deleteButton.addEventListener(Events.ON_CLICK,
new EventListener() {
public void onEvent(Event evt) {
List<Component> toRemove = new Vector<Component>();
Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator();
System.out.println("Deleted: ");
while (selected.hasNext()) {
Checkbox c = (Checkbox) selected.next();
if (c.isChecked()) {
System.out.print(c.getId());
System.out.println(" from row " + c.getParent().getId());
toRemove.add(c.getParent());
}
}
for (Component c : toRemove)
c.detach();
}
});
deleteButton.addEventListener(Events.ON_单击,
新的EventListener(){
公共无效事件(事件evt){
List toRemove=新向量();
所选迭代器=randomTable.queryAll(“行复选框”).Iterator();
System.out.println(“删除:”);
while(selected.hasNext()){
复选框c=(复选框)选中。下一步();
如果(c.isChecked()){
System.out.print(c.getId());
System.out.println(“从行”+c.getParent().getId());
toRemove.add(c.getParent());
}
}
对于(组件c:toRemove)
c、 分离();
}
});