1

ドロップダウンと入力テキストを含むデータテーブルがあります。データ テーブルに新しい行を追加するボタンがあります。

追加時に、ドロップダウンの送信された値と前の行の入力テキストを出力テキストとして表示し、ドロップダウンと入力テキストを新しい行にのみ表示したいと考えています。

renderedドロップダウン、入力テキスト、および出力テキストで属性を使用しました。ただし、新しい行を追加すると、ドロップダウンと出力テキストの両方が前の行に表示されます。

<h:dataTable id="Table" value="#{bean.orderList}" var="attr" binding="#{bean.orderTable}">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Item"/>
        </f:facet>
        <h:outputText value="#{attr.orderItem.ItemId}" rendered="#{attr.orderItem.ItemId != null}" />
        <h:selectOneMenu value="#{attr.orderItem.ItemId}" rendered="#{attr.orderItem.ItemId == null}">
            <f:selectItems value="#{bean.itemList}" var="attrList" itemValue="#{attrList.itemId}" itemLabel="#{attrList.itemName}" />
        </h:selectOneMenu>
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="Price" />
        </f:facet>
        <h:outputText value="#{attr.price}" rendered="#{attr.orderItem.itemId != null}" />
        <h:inputText value="#{attr.price}" rendered="#{attr.orderItem.itemId == null}" />
    </h:column>
</h:dataTable>

<a4j:commandButton value="Add" execute="@form" action="#{bean.addAction}" render=":Table" />
4

1 に答える 1

1

失敗した場所をよく見てください。

<h:outputText    ... rendered="#{attr.orderItem.ItemId != null}">
<h:selectOneMenu ... rendered="#{attr.orderItem.ItemId == null}">

そしてそれが機能する場所:

<h:outputText ... rendered="#{attr.orderItem.itemId != null}">
<h:inputText  ... rendered="#{attr.orderItem.itemId == null}">

一人が言いItemId、もう一人が言うitemId。合わせます。プロパティは、2 つの大文字だけで始まる場合を除き、常に小文字で始まります。

于 2013-11-27T13:10:50.913 に答える