如何使用SmartGWT手动/编程打开ComboboxItem / SelectItem的pickList?

时间:2012-02-10 13:18:25

标签: java combobox smartgwt

我正在使用SmartGWT 2.5和Java& Mozilla FF 3.6.x. 我想手动打开 ComboboxItem pickList SelectItem ,这意味着以编程方式。可能吗?如果我需要使用JavaScript来实现这一点,那就没关系。任何提示或解决方案都表示赞赏。

2 个答案:

答案 0 :(得分:3)

我终于得到了答案。在此处发布可能对其他人有用。我用过

comboxItem.showPicker();

实现手动打开ComboboxItem

的选项列表

答案 1 :(得分:1)

在SmartGWT 2.4中(我没有检查更新版本),SelectItem的showPicker()方法只显示一个空div,而不是选择项的选择列表。 (它适用于ComboBoxItem,正如RAS的答案所述)。

对底层SmartClient代码的一些挖掘表明,在JavaScript方面,有一个showPickList()方法在单击图标时(或在其他一些事件上)被调用,但这不是由Java公开的类。

所以我使用了一段JSNI(从SelectItem.showPicker的源代码修改)来调用这个方法:

public static native void showPickList(SelectItem item) /*-{
   var jsItem = item.@com.smartgwt.client.core.DataClass::getJsObj()();
   if(jsItem.showPickList) {
      jsItem.showPickList();
   }
}-*/

现在为任何此类选择列表调用showPickList(item)会打开选择器。