2017-03-16 21 views
0

私はprimefacesを使用していて、2列のデータテーブルを持っています。 1つの列が出力され、もう1つはselectOneMenuです。私は編集可能なselectOneMenuを作った。実際はそれは仕事だが、正しくはない。 selectItemのデフォルト値はnullになりますが、最初の値をデフォルト値として表示します。どうしたらいいですか?p:編集モードでのSelectOneMenuのデフォルト値

<p:dataTable id="cellEditingTable" var="message" 
    value="#{messageTableController.menuList}" paginator="true" 
    paginatorPosition="bottom" editable="true" editMode="cell"> 
     <p:column> 
      <p:selectOneMenu id="menu" value="#{messageTableController.selected}" 
       style="width:96%" effect="fold" editable="true"> 
       <f:selectItem itemLabel="#{message.assign}" 
        itemValue="#{message.assign}" /> 
       <f:selectItem itemLabel="#{message.combo}" 
        itemValue="#{message.combo}" /> 
      </p:selectOneMenu> 
     </p:column> 
    </p:dataTable> 

私はselectOneMenuの値を最初のItemValueに変更します。したがって、プログラムを実行すると、最初にItemValueが選択された項目をデフォルトとして選択しました。

<p:selectOneMenu id="menu" value="#{message.assign}" 
     style="width:97%" editable="true"> 
     <f:selectItem itemLabel="#{message.assign}" 
      itemValue="#{message.assign}" /> 
     <f:selectItem itemLabel="#{message.combo}" 
      itemValue="#{message.combo}" /> 
    </p:selectOneMenu> 

答えて

0

これに答えるために遅れる場合があります最初のSelectItemに

<f:selectItem itemLabel="#{message.assign}" 
        itemValue="#{message.assign}" noSelectionOption="true" /> 
+0

私はnoSelectionOptios = "true"を使用すると、コンボボックスの最初の項目として「s」を返します。 –

0

をnoSelectionOptionを追加します。 editable="true"を使用すると、ブラウズ中にレンダリングしている間は、テキストボックスとしてレンダリングされます。

editable="true"を削除すると、デフォルト値が選択されます。

編集可能なプロパティに基づいてfilter="true"

<p:selectOneMenu id="menu" value="#{message.assign}" 
    style="width:97%" filter="true"> 
    <f:selectItem itemLabel="#{message.assign}" 
     itemValue="#{message.assign}" /> 
    <f:selectItem itemLabel="#{message.combo}" 
     itemValue="#{message.combo}" /> 
</p:selectOneMenu> 

を使用し、selectOneMenuのフィルタオプションを提供したい場合は、以下のようにブラウザでレンダリングされます。 Render in Browser based on editable property

関連する問題