将新组件放入其中后更新数据网格大小

时间:2012-09-25 22:49:32

标签: jsf-2 xhtml primefaces

我正在编写一个拖放组件,用户可以将一个简单的面板拖放到dataGrid中,我的问题是当我删除一个新面板时,datagrid没有动态改变大小。 那么是否有要设置的属性或其他内容。 这是我跟着http://www.primefaces.org/showcase/ui/dndGrid.jsf的例子 提前谢谢。

这是我的代码:

<h:panelGrid columns="2" cellpadding="10">   
 <p:column>
    <p:fieldset id="belongTo" legend="Belong To" >  
     <p:dataGrid id="userGroups"
              var="userGroup"
              value="#{projectAdminisrationMB.selectedUserMemberOfGroups}"
              columns="3">  
    <p:column>  
      <p:panel id="pnl1"
               header="#{userGroup.name}"
               style="text-align:center">
        <h:panelGrid columns="1" style="width:100%">  
          <p:graphicImage value="/images/group/adminGroup.gif"/> 
        </h:panelGrid>  
      </p:panel>  
      <p:draggable for="pnl1"
                   revert="true"
                   handle=".ui-panel-titlebar"
                   stack=".ui-panel"/>
    </p:column>  
  </p:dataGrid>  
</p:fieldset>  
<p:droppable for="belongTo"
             tolerance="touch"
             activeStyleClass="ui-state-highlight"
             datasource="userNotGroups" >
  <p:ajax listener="#{projectAdminisrationMB.onExcludeFromGroupDrop}" />
 </p:droppable> 
 </p:column>
 <p:column>  
   <p:fieldset id="excludeFrom"
            legend="Exclude From"
            style="margin-top:20px">  
  <p:dataGrid id="userNotGroups"
              var="userNotGroup"
              value="#{projectAdminisrationMB.selectedUserNotMemberOfGroups}"
              columns="3">  
    <p:column>  
      <p:panel id="pnl2"
               header="#{userNotGroup.name}"
               style="text-align:center">  
        <h:panelGrid columns="1" style="width:100%">  
          <p:graphicImage value="/images/grou/defaultGroup.gif"/> 
        </h:panelGrid>  
      </p:panel>  
      <p:draggable for="pnl2"
                   revert="true"
                   handle=".ui-panel-titlebar" 
                   stack=".ui-panel"/>  
    </p:column>  
  </p:dataGrid>  
</p:fieldset>   
<p:droppable for="excludeFrom"
             tolerance="touch"
             activeStyleClass="ui-state-highlight"
             datasource="userGroups"  >  
  <p:ajax listener="#{projectAdminisrationMB.onBelongToGroupDrop}"  />  
  </p:droppable>  
  </p:column>
</h:panelGrid>

1 个答案:

答案 0 :(得分:0)

尝试将“update”参数添加到两个p:ajax调用中。

<p:ajax listener="#{projectAdminisrationMB.onExcludeFromGroupDrop}" update="userNotGroups userGroups" />

<p:ajax listener="#{projectAdminisrationMB.onBelongToGroupDrop}"  update="userNotGroups userGroups"  />

您引用的链接正在使用此技术。 update参数获取要更新的组件的ID。 PrimeFaces DnD Demo

希望这有帮助。