ЗК получает выбранный предмет из выпадающего списка - PullRequest
1 голос
/ 08 декабря 2010

Я пытаюсь получить выбранное значение в выпадающем списке, но оно возвращается как ComboItem. Как я могу получить значение в виде строки?

<zscript>
  <![CDATA[
    String[] months = { "Ada", "Basic", "C", "C++", "Cobol", "Forth",
            "Fortran", "Go", "Groovy", "Haskell", "Java", "JavaScript", "Lisp",
            "Python", "Ruby", "Scala", "Scheme" };
  ListModel lmonths = new SimpleListModel(months);
]]></zscript>
                    <combobox id="searchCombo"
                        forward="onChange=onSearch" model="@{months}" >
<!-- 
                        <comboitem self="@{each='months'}"
                            label="@{months}" value="@{months}">
                        </comboitem>
 -->

                        </combobox>

А вот и мой метод onSearch

public void onSearch(ForwardEvent event) {


        System.out.println(searchCombo.getSelectedItem());


    prodevt.search(searchCombo.getSelectedItem().toString());
        filterCbox.setChecked(true);



        AnnotateDataBinder binder = (AnnotateDataBinder) win.getVariable(
                "binder", true);

        binder.loadAll();

    }

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

Я решил это как

searchCombo.getSelectedItem().getValue().toString();
2 голосов
/ 10 декабря 2010

Привязка данных ZK с помощью комбинированного списка очень мощная,

я создал образец для синхронизации выбора данных из комбинированных списков и списка

<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<zk>
<zscript>
  <![CDATA[
        String[] langs = { "ZK" ,"Ada", "Basic", "C", "C++", "Cobol", "Forth", 
                           "Fortran", "Go", "Groovy", "Haskell", "Java", 
                           "JavaScript","Lisp", "Python", "Ruby", "Scala",
                           "Scheme" 
                         };
        //(Optional) Default Select ZK 
    String things_i_have_selected = langs[0]; 
    ]]></zscript>
<hlayout>
    <combobox model="@{langs}" selectedItem="@{things_i_have_selected}" />

    <combobox model="@{langs}" selectedItem="@{things_i_have_selected}" />

    <listbox model="@{langs}" selectedItem="@{things_i_have_selected}"  
             rows="5" width="400px">
        <listitem self="@{each=String}">
            <listcell label="@{String}"></listcell>
        </listitem>
    </listbox>
</hlayout>
</zk>

I Love Data Binding

что я хочусказать, что вам не нужно получать значение элемента выделения:)

Ссылка

  1. ZK Demo
  2. ZK Essentials # Внедрение привязки данных
1 голос
/ 28 августа 2014

searchCombo.getSelectedItem (). GetValue () -> получить значение выбранного ComboItem

searchCombo.getSelectedItem (). GetLabel () -> получить текст выбранного ComboItem

...