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和多選的列表框
我在想這樣的東西..但不是通過創建子類。我喜歡這個。謝謝.. –