首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过RequestContext更新

如何通过RequestContext更新
EN

Stack Overflow用户
提问于 2013-07-09 06:31:53
回答 4查看 24.3K关注 0票数 6

我正在尝试使用RequestContext.update()来更新表,下面的代码正在运行(jsf):

代码语言:javascript
复制
<h:panelGrid columns="2" style="width: 100%" columnClasses="treeColumn,tableColumn">
        <h:panelGroup id="treePanel">
            <p:tree id="tree" 
                    value="#{bean.root}" 
                    var="node" 
                    dynamic="true"
                    cache="true"
                    animate="true"
                    selectionMode="single"
                    selection="#{bean.selectedNode}"
                    rendered="#{bean.renderTree}"> 
                <p:ajax event="select" listener="#{bean.onNodeSelect}" update=":mainForm:treePanel,:mainForm:tablePanel"/>
                <p:ajax event="collapse" listener="#{bean.onNodeCollapse}"/>
                <p:treeNode expandedIcon="ui-icon-folder-open"  
                            collapsedIcon="ui-icon-folder-collapsed">  
                    <h:outputText value="#{node.name}" styleClass="tableTreeText"/>  
                </p:treeNode> 
                 <p:treeNode expandedIcon="ui-icon-folder-open"  
                             collapsedIcon="ui-icon-folder-collapsed">  
                    <h:outputText value="#{node.name}" styleClass="tableTreeText"/>  
                </p:treeNode> 
            </p:tree> 
        </h:panelGroup>
        <h:panelGroup id="tablePanel" styleClass="acqPanelTable">
            <p:dataTable id="acqDataTable"
                         widgetVar="acqTablehdsWidget"
                         var="acq"
                         value="#{bean.list}" 
                         rendered="#{bean.renderTable}"
                         filteredValue="#{bean.filteredList}"
                         paginator="true"
                         paginatorPosition="bottom"

     .....
     ....
     ...
     ..
     .

但不是通过服务器端:

代码语言:javascript
复制
 RequestContext requestContext = RequestContext.getCurrentInstance();
 requestContext.update(":mainForm:tablePanel");
 renderTable = true;

我不明白有什么不同?

感谢您的帮助和建议

谢谢

EN

回答 4

Stack Overflow用户

发布于 2013-07-10 01:49:58

删除前导冒号。

代码语言:javascript
复制
requestContext.update("mainForm:tablePanel");

它总是相对于UIViewRoot来解决的。前导冒号仅在当前位于视图中的UINamingContainer组件中时有效。

票数 26
EN

Stack Overflow用户

发布于 2019-08-26 22:06:11

从PrimeFaces 7.0开始,class RequestContext已被class PrimeFaces取代,如migration guide中所示。因此,为了更新组件,您可以调用:

代码语言:javascript
复制
PrimeFaces.Ajax currentAjax = PrimeFaces.current().ajax();
currentAjax.update("myFormId:myDatatableId");
票数 3
EN

Stack Overflow用户

发布于 2017-10-20 05:28:26

尝试使用:

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("formName:objectId");

它可以在primefaces 4.0中运行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17537078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档