NDe*_*per 4 datatable jsf primefaces tablecolumn conditional-rendering
我写了一个代码:
<p:column headerText="Edit" width="40" rendered="#{(leaveDetails.strLeaveStatus == 'Canceled') or (leaveDetails.strLeaveStatus == 'Availed')}">
<p:commandLink actionListener="#{userLeaveBean.editAppliedLeave}" title="Edit" disabled="true" process="@this" update="leaveDataTable" immediate="false">
<h:graphicImage url="resources/images/edit.JPG"/>
<f:attribute name="userId" value="#{employee.name}"/>
<f:attribute name="editFirstHalf" value="#{leaveDetails.strStartTiming}"/>
<f:attribute name="editSecondHalf" value="#{leaveDetails.strEndTiming}"/>
<f:attribute name="editFrom" value="#{leaveDetails.dtLeaveFromDate}"/>
<f:attribute name="editTo" value="#{leaveDetails.dtLeaveToDate}"/>
<f:attribute name="leaveId" value="#{leaveDetails.strLeaveId}"/>
</p:commandLink>
</p:column>
Run Code Online (Sandbox Code Playgroud)
但渲染的属性不适用于该条件.如何使用逻辑运算符使条件有效?使用PrimeFaces 3.4.2
Bal*_*usC 10
您不能有条件地按行显示整列.这在逻辑上没有任何意义.您只能在每个表的基础上有条件地呈现它.在<p:column rendered>不能采取基于迭代行性质的条件.它只能采用基于父bean属性的条件.
如果您打算有条件地隐藏当前迭代行的单元格,则只需将rendered属性移动<p:column>到<p:commandLink>或至少包含整个<p:column>内容的组件,例如<h:panelGroup>.
或者,如果您确实打算有条件地隐藏整列,则将rendered属性中使用的条件移动<p:column>到 #{userLeaveBean}父bean.
NDe*_*per -2
我在 GOD BalusC 的帮助下解决问题的最佳方法是:
<p:column headerText="Edit" width="40">
<p:commandLink actionListener="#{userLeaveBean.editAppliedLeave}" title="Edit" process="@this" update="leaveDataTable"
immediate="false" disabled="#{(leaveDetails.strLeaveStatus == 'Canceled') or (leaveDetails.strLeaveStatus == 'Availed')}">
<h:graphicImage url="resources/images/edit.JPG"/>
<f:attribute name="userId" value="#{employee.name}"/>
<f:attribute name="editFirstHalf" value="#{leaveDetails.strStartTiming}"/>
<f:attribute name="editSecondHalf" value="#{leaveDetails.strEndTiming}"/>
<f:attribute name="editFrom" value="#{leaveDetails.dtLeaveFromDate}"/>
<f:attribute name="editTo" value="#{leaveDetails.dtLeaveToDate}"/>
<f:attribute name="leaveId" value="#{leaveDetails.strLeaveId}"/>
</p:commandLink>
</p:column>
Run Code Online (Sandbox Code Playgroud)
而且它的效果就像黄油一样光滑!