GWT列表框多选
回答
创建的ListBox
自己小的子类,提供像
public LinkedList<Integer> getSelectedItems() {
LinkedList<Integer> selectedItems = new LinkedList<Integer>();
for (int i = 0; i < getItemCount(); i++) {
if (isItemSelected(i)) {
selectedItems.add(i);
}
}
return selectedItems;
}
方法的GWT API不提供直接的方式。
您可以浏览ListBox
中的项目并致电isItemSelected(int)
查看是否选择了该项目。
1,因为这在getSelectedIndex()''的的Javadoc实际上提到:如果选择了多个项目,该方法将返回所述第一选择的项目(isItemSelected(INT))可以用来查询单个项目)。 – z00bs
@Zoltan:为此我需要遍历整个列表并检查相同。我不想更喜欢 –
@zoobs:它也提到了..“如果选择多个项目,则此方法将返回第一个选定项目” –
如果你不想子类的列表框,下面显示了如何从外界获得所选择的项目:该方法已运行
public void getSelectedItems(Collection<String> selected, ListBox listbox) {
HashSet<Integer> indexes = new HashSet<Integer>();
while (listbox.getSelectedIndex() >= 0) {
int index = listbox.getSelectedIndex();
listbox.setItemSelected(index, false);
String selectedElem = listbox.getItemText(index);
selected.add(selectedElem);
indexes.add(index);
}
for (Integer index : indexes) {
listbox.setItemSelected(index, true);
}
}
后所选择的集合将包含所选元素。
感谢您的答案。问题现在已经超过一年了,我不再工作在GWT –
+1。比遍历整个列表更好! –
您必须迭代ListBox
中的所有项目。唯一的捷径是使用getSelectedItem()
从第一个选定项目进行迭代,它将返回多选ListBox
中的第一个选定项目。
public List<String> getSelectedValues() {
LinkedList<String> values = new LinkedList<String>();
if (getSelectedIndex() != -1) {
for (int i = getSelectedIndex(); i < getItemCount(); i++) {
if (isItemSelected(i)) {
values.add(getValue(i));
}
}
}
return values;
}
- 1. GWT多选下拉列表框
- 2. gwt,表单上的很多列表框
- 3. 多选列表框
- 4. 多选列表框
- 5. GWT列表框OnChangeHandler
- 6. 跨多列的HTML多选列表框
- 7. 列表框多选方法
- 8. Python Tkinter多选列表框
- 9. 多选择列表框中
- 10. 列表框多值选择
- 11. 列表框多选问题
- 12. WPF列表框多选
- 13. GWT - 时尚的列表框
- 14. GWT列表框造型
- 15. GWT列表框默认
- 16. 使列表框选择选择多个列表框c#
- 17. MVC 4多选择列表框中选中列表框
- 18. 显示多列复选框列表
- 19. 多列智能gwt树网格和复选框
- 20. jquery gwt复选框
- 21. GWT列表框 - 如何禁用列表框项目?
- 22. 通过2个下拉列表筛选多选列表框
- 23. 多列选择框
- 24. 多列列表框
- 25. 多列列表框
- 26. 多列列表框
- 27. 列表框选择处理程序在GWT
- 28. 在GWT中选择列表框下拉项目
- 29. 如何多选列表框asp.net
- 30. MvvmCross和多选的列表框
我在想这样的东西..但不是通过创建子类。我喜欢这个。谢谢.. –