2014-05-20 6 views
1

일부 테이블에서 드래그 앤 드롭을 시도하고 있습니다. 소스 테이블은 selectOneMenu-> AccordianPanel-> datatable에서 동적으로 생성됩니다. 데이터 소스에서 아래에 나열된 직접 경로를 사용하여 droppable에서 가리킬 수 있지만 attribValue 텍스트를 삭제할 때 noRowAvailableException이 발생합니다. 해결책의 길에 어떤 아이디어가 있습니까? 내가 알 필요가있는 것을 남겨두면 사과를하고 필요할 때마다 업데이트 할 것입니다. 고맙습니다. 당신은 수동으로 콩의 대상 목록의 변수를 초기화해야다른 패널의 데이터 테이블로 동적으로 생성 된 데이터 테이블에서 프라임 페이퍼 드랍 가능

<p:dataTable value="#{testBean.subscriptions}" var="subscripList" id="subscriptions"> 
           <p:column style="width:648px"> 
            <script type='text/javascript'> 
             $(".myDroppables").droppable({ 
              accept: '.myDraggables' 
             }); 
            </script> 
            <f:facet name="header"> 
             Product Subscriptions 
            </f:facet> 
            <h:outputText id="destination" value="#{subscripList.name}" class="myDroppables" /> 
            <p:droppable for="subscriptions" datasource=":mainForm:form:attribute:attribValue"> 
             <p:ajax process="subscriptions" listener="#{testBean.onDrop}" update="subscriptions" /> 
            </p:droppable> 
           </p:column> 
          </p:dataTable> 

답변

0

:

<p:accordionPanel value="#{testBean.attributeList}" var="attribute" id="attribute" > 
            <p:tab title="#{attribute.displayName}"> 
             <p:dataTable value="#{attribute.valuesList}" var="attribValue" id="attribValue" selectionMode="single" rowKey="#{attribValue}" selection="#{testBean.attribValue}"> 
              <p:column> 
               <script type='text/javascript'> 
                $(".myDraggables").draggable({ 
                 helper: function() { 
                  return $(this).clone().appendTo('body').css('zIndex', 5).show(); 
                 } 
                }); 
               </script> 
               <h:outputText value="#{attribValue.name}" class="myDraggables" id="actualValue"/> 
               <p:draggable for="actualValue" revert="true" /> 
              </p:column> 
             </p:dataTable> 
            </p:tab>` 
           </p:accordionPanel> 

는이 드롭 위치입니다.

testBean에서

단지 대체

List subscriptions; 

List subscriptions = new ArrayList<>();