如何在jsf中启用和禁用命令链接?

时间:2016-11-11 11:17:18

标签: jsf

我是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>

1 个答案:

答案 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