排序在primefaces的数据表中后,Javascript丢失了

时间:2012-07-24 18:02:14

标签: javascript ajax jsf datatable primefaces

我在Primefaces上的表格,如下:

                              <p:dataTable id="creditos" ajax="false" paginator="true" value="#{listaCreditos.proyectList}" var="cc" resizable="false" styleClass="dataTableSelProject" rows="20" width="99%" cellspacing="10" cellpadding="10" rowsPerPageTemplate="20,40,80" rowIndexVar="rowIndex">

                                   <p:column styleClass="borderCell imgColumnOnLoans">
                                        <div id="imagenCol-loans#{cc.proyectloanPk.proyect_loan_id}" class="imgCol-Loans">
                                             <h:graphicImage styleClass="graphImage" url="..#{cc.proyect.image}" /> 
                                        </div>
                                   </p:column> 

                                   <p:column id="colNameTag"  sortBy="#{cc.proyect.name}" rendered="true" styleClass="borderCell proyectTitle" headerText="Categoría / Título">
                                        <div id="yui-gen62" class="yui-dt-liner proyectDetailOnLink">
                                            <div id="yui-gen66" class="titleAndPurposeDiv">
                                                <strong id="yui-gen65" class="browseNotesStrong breakWord">
                                                        <span  id="yui-gen64" class="expand-loan-details pDLink">
                                                            <p:commandLink id="cmdLinkDetail" value="#{cc.proyect.purpose.name}" actionListener="#{summaryRequest.mapeoDatos}" action="resumen">
                                                                <f:attribute name="proyectAtrr" value="#{cc.proyectloanPk.proyect_loan_id}::#{cc.proyectloanPk.proyect_id}::#{cc.proyectloanPk.prospectus_id}::#{cc.proyectloanPk.company_id}" />
                                                            </p:commandLink>
                                                        </span>
                                                </strong>
                                                <div id="proyectNameTag">
                                                    <span id="yui-gen211" >
                                                            #{cc.proyect.name}
                                                    </span>
                                                </div>
                                            </div>
                                        </div>

                                   </p:column>



                                   <p:column sortBy="#{cc.ammount}" styleClass="borderCell" >
                                        <f:facet id="headerB" name="header" align="center">
                                               Monto/&nbsp;<br /> Tasa
                                        </f:facet>
                                            <div align="center" id="yui-gen130" class="yui-dt-liner">
                                                <div align="center" id="yui-gen209" class="timeDisplay">
                                                    <h:outputText value="#{cc.ammount}">
                                                         <f:convertNumber currencySymbol="$" type="currency" groupingUsed="true" locale="es_MX"/>
                                                    </h:outputText>
                                                </div>
                                                <strong id="yui-gen137" class="rate"> &nbsp;&nbsp;&nbsp;#{cc.rate}%</strong>
                                            </div>      
                                   </p:column> 

                                   <p:column   styleClass="borderCell" sortBy="#{cc.term.months}">
                                        <f:facet name="header" id="headerC">
                                               Plazo&nbsp;&nbsp;
                                        </f:facet>
                                            <div class="termForProyect" id="yui-gen163">
                                                <span id="yui-gen162" class="loanTypeAndLength">#{cc.term.months} meses</span>
                                            </div>      
                                    </p:column>

。 一些专栏 。

                                </p:dataTable>

但是在普通排序之后我的javascript代码不起作用,当使用commandButton我使用onComplete标记并对JS的某些函数执行“刷新”时,我该怎么做才能排序???

这是JS代码,只需加载一个fancybox通过commandButton调用fancybox:

function setFancyBox(){
    $("a#ifancybox").fancybox({
         'width' : 500,
         'height' : 330,
         'autoScale': false,
         'autoDimensions': false,
         'transitionIn' : 'elastic',
         'transitionOut' : 'elastic',
         'type' : 'inline',
         'overlayColor':'#E8E8E8'
    });
    $("#creditos tr:odd").addClass('par');
    $.fancybox.resize();
}

这是“重新加载”并保持JS功能的代码。

<p:ajax update="creditOfAccount , actualAccount , creditos , :forminfo:cuentasUsr2 , :forminfo:addBtn1 , :forminfo:tagFromAccount2" oncomplete="setFancyBox();"/>

但问题是¿当我点击默认的主要部分时,我怎么能做“oncomplete”?

1 个答案:

答案 0 :(得分:0)

primefaces datatable提供了几个ajax行为事件。你需要使用&#39; sort&#39;事件。查看primefaces用户指南,第141页,了解支持的其他ajax事件。

<p:ajax event="sort" update="creditOfAccount actualAccount creditos :forminfo:cuentasUsr2 :forminfo:addBtn1 :forminfo:tagFromAccount2" oncomplete="setFancyBox();"/>