如何以编程方式将渲染设置为PrimeFaces列?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以编程方式将渲染设置为PrimeFaces列?相关的知识,希望对你有一定的参考价值。
我有一个phaseListener,应该将data属性设置为dataTable中的primefaces列
public class NewFeaturesListener implements PhaseListener {
@Override
public void afterPhase(PhaseEvent phaseEvent) {
// Do nothing here
}
@Override
public void beforePhase(PhaseEvent phaseEvent) {
process(phaseEvent.getFacesContext().getViewRoot(), "column7WarrantyFix");
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
private void process(UIComponent component, String... ids) {
// Go to every child
for (UIComponent child : component.getChildren()) {
// If component has a given ID then check if you can rendered it
for (String id : ids)
if (id.equals(child.getId())) {
child.setRendered(false);
}
// Process next node
process(child, ids);
}
}
}
这是我的专栏
<p:column id="column7WarrantyFix">
<f:facet name="header">
<h:outputText value="#{appMsg.admin_warranty_fix}" />
</f:facet>
<h:selectBooleanCheckbox value="#{item.object.isWarrantyFix}">
<f:ajax value="change" execute="@this" render="@form"
listener="#{MyBean.warrantyChanged}"/>
</h:selectBooleanCheckbox>
</p:column>
但不幸的是没有任何反应。此列显示在界面中。但当我将primefaces p tag更改为“h:”时,一切正常。为什么我不能用primefaces做同样的事情?
答案
因为我正在重新发明轮子决定在Bean中使用这个逻辑
以上是关于如何以编程方式将渲染设置为PrimeFaces列?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式更改 p:dataTable 中 p:column 的渲染属性
如何以编程方式将 ListView 列标题属性 IsHitTestVisible 设置为 False?
如何以编程方式将 Silverlight Grid 布局 ColumnDefinition 宽度设置为“*”?