2016-11-11 38 views
0

我对jsf很新,我在java类中创建了一个包含4列和20行的数组列表。当我们点击该特定条目时,有一列有更多数据链接到它。我想启用命令链接仅适用于这些条目,其余数据应该只显示为(命令链接应该被禁用)。我已经以不同的方式尝试了它们,但我同时获得了输出标签和命令链接(这意味着我得到的数据两次)。但我只需要显示数据一次。有人请给我一种解决这个问题的方法。下面是我的代码,其中sampleMB是我的托管bean,并且有一列column1,它有20行其中4行必须使用命令链接启用,条件是这些行中的数据包含字符串“XYZ”,其余16行应按原样显示。如何在jsf中启用和禁用命令链接?

任何帮助将非常感激。

<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

什么是这样的:

<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

+0

感谢您的回答peterremec.That帮助我的事业.. ;-) –