以下のコード ( PrimeFaces ShowCase から取得)<h:outputText value="#{car.id}" />
を考えると、2 番目の列のテキストが(画像ではなく) 行を展開/縮小するためのリンクとして機能するように機能を変更する最良の方法は何<p:rowToggler>
ですか?
これがどれほど簡単か、またはそうあるべきかはわかりませんが、私は PrimeFaces にかなり慣れていないため、これをどのように行うことができるかわかりません。私はドキュメントとPrimeFaces ShowCase を調べました) (そして同様のコードで数時間遊んでみました) が、それを成し遂げることができませんでした。
ショーケース コード:
<h:form>
<p:dataTable var="car" value="#{dtBasicView.cars}">
<f:facet name="header">
Expand rows to see detailed information
</f:facet>
<p:column style="width:16px">
<p:rowToggler />
</p:column>
<p:column headerText="Id">
<h:outputText value="#{car.id}" /> <!-- This text needs to be a link that expands the row -->
</p:column>
<p:column headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:rowExpansion>
<p:panelGrid columns="2" columnClasses="label,value" style="width:300px">
<f:facet name="header">
<p:graphicImage name="demo/images/car/#{car.brand}-big.gif"/>
</f:facet>
<h:outputText value="Id:" />
<h:outputText value="#{car.id}" />
<h:outputText value="Year" />
<h:outputText value="#{car.year}" />
<h:outputText value="Color:" />
<h:outputText value="#{car.color}" style="color:#{car.color}"/>
<h:outputText value="Price" />
<h:outputText value="$#{car.price}" />
</p:panelGrid>
</p:rowExpansion>
</p:dataTable>
</h:form>
編集- シンプルなソリューションを見つけましたが、それが最もエレガントかどうかはわかりません。これを使用しない理由はありますか?
<p:column style="display:none !important">
<p:rowToggler />
</p:column>
<p:column>
<h:outputLink value="#">#{car.id}</h:outputLink>
</p:column>`