2010-12-08 17 views
1

コンボボックスで選択した値を取得しようとしていますが、ComboItemとして返されます。どのように値を文字列として取得できますか?ZKコンボボックスから選択項目を取得

<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

私は私が選択したデータを同期するために、サンプルを作成した

、コンボボックスでZKのデータバインディングは非常に強力です

searchCombo.getSelectedItem().getValue().toString(); 
2

のようにそれを解決しましたコンボボックスとリストボックスから

<?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#Implementing Data Binding
1

searc hCombo.getSelectedItem()のgetValue() - 。>)選択ComboItem

searchCombo.getSelectedItem(の値を取得するgetLabel() - >選択ComboItem

のテキストを取得
関連する問題