我是jsf的新手。我在java类中创建了一个包含4列和20行的arraylist。当我们点击该特定条目时,有一列其他数据链接到它。我想启用命令只链接那些条目,其余的数据应该只是显示(命令链接应该被禁用)。我已经尝试过不同的方式,但我同时获得输出标签和命令链接(这意味着我得到了两次数据)。但我只需要显示一次数据。有人请建议我解决这个问题的方法。下面是我的代码,其中sampleMB是我的托管bean,有一个column1有20个必须使用命令链接启用4行的行,条件是这些行中的数据包含字符串" XYZ"其余16行应按原样显示。
任何帮助都将非常感激。
<p:dataTable id="table" value="#{sampleMB.List1}" var="cList" scrollable="true" scrollHeight="400">
<p:column headerText="column1" >
<h:outputLabel value="#{cList.column1 }" >
<p:commandLink value="#{cList.column1}" ajax="false" style="text-decoration:underline" rendered="#{cList.card_slot.contains('XYZ')}" /> </h:outputLabel>
</p:column>
</p:dataTable>
答案 0 :(得分:1)
这样的事情:
<p:dataTable id="table" value="#{sampleMB.List1}" var="cList" scrollable="true" scrollHeight="400">
<p:column headerText="column1">
<h:outputLabel value="#{cList.column1 }" rendered="#{not cList.card_slot.contains('XYZ')}" />
<p:commandLink value="#{cList.column1}" ajax="false" style="text-decoration:underline" rendered="#{cList.card_slot.contains('XYZ')}" />
</p:column>
</p:dataTable>
如果您只想启用/禁用命令链接,则应使用disabled
属性而不是rendered
并删除h:outputLabel
。