【问题标题】:How to keep primefaces rowexpansion open in an update of the table?如何在表的更新中保持 primefaces 行扩展打开?
【发布时间】:2017-04-24 22:01:57
【问题描述】:

您好,我有一个带有 p:rowToggler 的数据表,因此当从行扩展启动弹出窗口时,在关闭弹出窗口后,我需要更新行中的一些标签。更新有效!但行扩大,折叠。关闭弹出窗口并更新内容后,如何保持打开行扩展。谢谢。

弹窗片段

 <p:ajax event="close"  update=":id1:id2"  oncomplete="someJavascript()" />

Databable 的片段

<h:form prependId="false" id="id1"> 
            <h:panelGroup id="id2" >
                  <p:dataTable tableStyleClass="win" var="element"                                id="table1" value="#{myBean.list}"
                            selectionMode="single"  rowExpandMode="single" rowIndexVar="cont" widgetVar="table1"
                           selection="#{myBean.selectedRecord}" rowKey="#{element.id}"   >
<p:ajax event="rowToggle"    listener="#{myBean.methodBean(element)}" /> 
                     <p:column styleClass="rowTogglerStyle" 
<p:rowToggler collapseLabel="#{bundle.show}" 
 expandLabel="#{bundle.show}">
</p:rowToggler>                    
</p:column> 

</p:datatable>  </h:panelGroup>  </h:form>

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    如果您保存扩展的行元素 ID,您可以这样做:

    <p:dataTable expandedRow="#{element.id == myBean.expandedRowElementId}">
        <p:ajax event="rowToggle" listener="#{bean.setExpandedRowElementId(element.id)}"/>
    

    为了防止它再次被打开,你需要稍微修改一下setter:

    public void setExpandedRowElementId(String expandedRowElementId){
      if(this.expandedRowElementId != null && expandedRowElementId.equals(this.expandedRowElementId) 
      // if the id is equal the expansion is closed, so the expanded element must be set to null
         this.expandedRowElementId = null;
      else
         this.expandedRowElementId = expandedRowElementId;
    }
    

    【讨论】:

    • 谢谢@lastresort 我正在尝试。
    【解决方案2】:

    您好,问题是关闭弹出窗口后选定的行扩展有 ui-state-highlight 类,所以我发现这样做是为了通过 p:ajax 中的 onclomplete 属性中的 javascript 重新打开关闭的行扩展:

    jQuery('tr.ui-state-highlight').find('td.rowTogglerStyle > div.ui-row-toggler').trigger('click');

    我希望它对其他人有用。

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      相关资源
      最近更新 更多