【发布时间】:2013-07-29 13:33:12
【问题描述】:
我一直在尝试渲染 Rich:dataTable,但在条件渲染方面失败了。我只想在列表大小(即从 DB 获取的支持 bean)大于零时渲染它.
JSF-2.0,RichFaces-4 是我用的。
【问题讨论】:
-
发布您的代码以便我们查看。
我一直在尝试渲染 Rich:dataTable,但在条件渲染方面失败了。我只想在列表大小(即从 DB 获取的支持 bean)大于零时渲染它.
JSF-2.0,RichFaces-4 是我用的。
【问题讨论】:
您必须使用数据表的“渲染”属性。使用它,您可以定义组件是否呈现给客户端。因此,如果列表已填充,请通过 EL 检查。
你可以这样做:
rendered="#{not empty listObject}"
一切都很好。 我总是实现我的数据库查询方法从不返回 null,如果查询没有结果我返回一个空列表。这样我确定我永远不会得到一个空指针异常,我更喜欢显示一个空表。因为它更容易布局页面,当您确定表格始终存在时。
希望对您有所帮助。
【讨论】:
rendered。在richfaces 4 docs.jboss.org/richfaces/latest_4_X/vdldoc/rich/dataTable.html 中没有<rich:dataTable> 的render 属性@
场景是我有一个右键单击的 groupId。在上下文菜单上,我选择显示 CTN,然后它应该在数据表中呈现该组的所有 CTN。它从一个 JavaScript 调用开始,一旦我选择“显示 CTN”,我就会调用它。它负责将 GroupId 提供给 a4j:jsFunction。
<rich:dataTable value="#{ctnGrpMgmtController.ctnDetailsList}"
var="ctnVar" id="ctnTable" rows="5"
rendered="#{not empty ctnDetailsList}">
上面的应该在下面的 a4j:jsFunction 执行后渲染。
<a4j:jsFunction name="selectGroupForManagingCtns"
action="#{ctnGrpMgmtController.loadCTNsForAGroup}"
render="ctnListPanel,ctnTable">
<a4j:param name="name"
assignTo="#{ctnGrpMgmtController.groupId}" />
</a4j:jsFunction>
我必须按 F5 才能看到组件“ctnTable”,这就是问题开始的地方。
【讨论】:
看起来 a4j:jsFunction 上的属性名称是 reRender 而不是 render。应该修复它。
【讨论】: