我正在开发一个使用rich:tree元素的项目,在展开时,应该使用a4j:status显示附近的处理动画。我遇到的问题是树被多个其他元素重新渲染。我认为造成最大麻烦的是a4j:push元素每秒都会重新渲染树。这种重新渲染会导致状态元素在不应该的情况下改变状态,从而导致屏幕闪烁。
我的状态元素:
<a:outputPanel id="working_animation" style="display: block; height: 1px">
<!-- Working animation -->
<a:status stopText=" " id="header_progress">
<a:facet name="start">
<a:outputPanel id="header_working" rendered="#{rich:element('tree_state.value').value}" style="padding-left: 16.5em;">
<span id="l-1"></span>
<span id="l-2"></span>
<span id="l-3"></span>
<span id="l-4"></span>
<span id="l-5"></span>
<span id="l-6"></span>
</a:outputPanel>
</a:facet>
</a:status>
</a:outputPanel>
树元素的一部分:
<rich:tree
id="sectionTree"
switchType="ajax"
value="#{sectionAction.sectionNodes}"
var="node"
nodeFace="#{node.nodeType}"
rightClickSelection="true"
ajaxSubmitSelection="true"
iconCollapsed="/img/treenode/collapsed.png"
iconExpanded="/img/treenode/expanded.png"
componentState="#{sectionAction.treeState}">
<rich:changeExpandListener binding="#{sectionAction}" />
<rich:nodeSelectListener binding="#{sectionAction}" />
除此之外是节点定义
推送元素:
<h:form>
<a:push
eventProducer="#{loggedUser.registerLoginListener}"
interval="1000"
reRender="sectionTree">
</a:push>
<a:push
eventProducer="#{loggedUser.registerStudentListener}"
interval="2000"
reRender="sectionTree">
</a:push>
</h:form>
答案 0 :(得分:2)
如何禁用状态有两种选择:
a:push
包裹a:region
个标签。status="none"
指定a:push
属性。有关详细信息,请参阅livedemo:http://livedemo.exadel.com/richfaces-demo/richfaces/status.jsf?c=status&tab=usage