函数调用更新jsf中的组件

时间:2014-03-04 13:20:53

标签: jquery jsf-2 primefaces

我在表单中有一个Treenode

<h:form id="form">
 <p:panel styleClass="gridTree" id="gridTree" style="overflow:auto">
  <p:tree value="#{permissionsBean.root}" var="node" dynamic="true" cache="true" id="permissionTree" >  
   <p:treeNode>
    <h:outputText value="#{node}"/>  
   </p:treeNode>
  </p:tree> 
 </p:panel>

要修正树的高度并为高度添加滚动条,我将更改脚本中的高度

$(document).ready(function(){
        var windowHeight = $(window).height();
        $('.gridTree').css('height',windowHeight-220+'px');
        $(window).resize(function () {
            windowHeight = $(window).height();
            $('.gridTree').css('height',windowHeight-220+'px');
        });
    });

现在我正在从选择的一个菜单update="@form"的更改事件更新表单。这将删除 document.ready 功能中设置的高度。那么如何调用一个javascript函数来设置组件更新时树的高度?

2 个答案:

答案 0 :(得分:1)

我不知道它是否正确但是如果我在JSF中使用ui组件的'onchange'属性来调用我的resize函数。我尝试了jQuery更改功能,但它没有用。

         <p:selectOneMenu id="categoryName" value="#{permissionsBean.permissions.category}"  >
                <f:selectItem itemLabel="Select" itemValue="0" />
                <f:selectItems value="#{permissionsBean.permission}" var="perm" itemLabel="#{perm.category}" itemValue="#{perm.category}"/>
                <p:ajax event="change" update="msgs picklist @form"   listener="#{permissionsBean.handleCategoryChange}" oncomplete="resizeComp();"/>
        </p:selectOneMenu>

答案 1 :(得分:0)

尝试使用jquery表单事件。

$("select,input,textarea").change(function()
{
//call your resize function
}