Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 使用RichFaces的绝对重新排序_Jsf_Richfaces_Rerender - Fatal编程技术网

Jsf 使用RichFaces的绝对重新排序

Jsf 使用RichFaces的绝对重新排序,jsf,richfaces,rerender,Jsf,Richfaces,Rerender,我的问题是RichFacesreRender在元素树中的当前元素下不起作用;只有上面的元素才能重新招标 有没有办法使用AJAX访问较低级别的元素 任何帮助都将不胜感激! 丹尼尔 编辑我把这个问题编辑成一个更一般的问题。如果对原始问题感兴趣,请参阅修订。 重新渲染器用于提供要重新渲染的目标对象的id(在同一命名容器中-表单最常见) 根据html规范,id应该是唯一的字符串 reRender允许动态值-即reRender=“#{myBean.currentItemsToRerender} 基于此,

我的问题是RichFaces
reRender
在元素树中的当前元素下不起作用;只有上面的元素才能重新招标

有没有办法使用AJAX访问较低级别的元素

任何帮助都将不胜感激! 丹尼尔

编辑我把这个问题编辑成一个更一般的问题。如果对原始问题感兴趣,请参阅修订。

  • 重新渲染器
    用于提供要重新渲染的目标对象的
    id
    (在同一命名容器中-
    表单
    最常见)
  • 根据html规范,
    id
    应该是唯一的字符串
  • reRender
    允许动态值-即
    reRender=“#{myBean.currentItemsToRerender}
基于此,我认为你应该能够实现你想要的(尽管还不完全清楚)

更新:


有一个定义良好的解析id的算法。因此,对于绝对引用,您重新命名的id应该从
开始,然后继续遍历命名容器的层次结构。

重新命名器也可以指向表单外的任何组件。例如,此操作:

<h:form>
  <a4j:commandButton reRender="panel"/>
</h:form>

<h:panelGrid id="panel">
...
</h:panelGrid>

...

下面是一个示例,
changePanel111()
更改较低元素的内容:

<h:form id="form" prependId="true">
    <rich:panel id="PANEL1">
        <h:outputText id="PANEL1TEXT" value="#{ajaxTestBean.panel1}"/>
        <rich:panel id="PANEL11">
            <h:outputText id="PANEL11TEXT" value="#{ajaxTestBean.panel11}"/>
            <rich:panel id="PANEL111">
                <h:outputText id="PANEL111TEXT" value="#{ajaxTestBean.panel111}"/>
            </rich:panel>
        </rich:panel>
        <rich:panel id="PANEL12">
            <h:outputText id="PANEL12TEXT" value="#{ajaxTestBean.panel12}"/>
            <br/>
            <a4j:commandLink value="CHANGE PANEL12" action="#{ajaxTestBean.changePanel12}">
                <a4j:support reRender="PANEL12" event="onclick"/>
            </a4j:commandLink>
            <br/>
            <a4j:commandLink value="CHANGE PANEL111" action="#{ajaxTestBean.changePanel111}">
                <a4j:support reRender="form:PANEL111" event="onclick"/>
            </a4j:commandLink>
        </rich:panel>
    </rich:panel>
</h:form>



注意下面的元素需要如何标识为
表单:PANEL111


希望这有帮助!

对于我的MyFaces+Richfaces应用程序,
标记没有按照所选答案中的描述工作。当我将其更改为
时。“

配置:MyFaces 2.1.10(用于模板化的Facelets)和Richfaces 4.2.3

希望这会有所帮助