2011-06-09 42 views
1

我有與primefaces相同的問題2.2.1 我使用Spinner組件與Ajax。對於微調器上的每個更改,我想更新(primefaces)DataTable組件。我不知道爲什麼,每當我更新數據表時,即使selectionMode =「single」也選擇所有行,並且選擇使用POJO而不是列表的參數。這發生在一個複合實現中。更新(來自p:ajax)Primefaces數據表選擇表中的所有行

<h:form id="frm"> 
     (...) 
        <p:dataTable id="openingHoursTbl" var="oh" value="#{cc.attrs.openingHours}" rows="7" 
         selection="#{cc.attrs.selectedHours}" selectionMode="single" 
         onRowSelectUpdate="hoursTable" 
         style="width: 300px"> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Day" /> 
          </f:facet> 
          <h:outputText value="#{oh.displayedDays}" /> 
         </p:column> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Opening Hours" /> 
          </f:facet> 
          <h:outputText id="ohHeader" value="#{oh.displayedHours}" /> 
         </p:column> 
        </p:dataTable> 
       (...) 
          <p:spinner value="#{hour.fromHour}" maxlength="2" size="2" stepFactor="1" min="0" max="23"> 
           <p:ajax process="@form" update="#{cc.clientId}:frm:openingHoursTbl" event="change" /> 
          </p:spinner> 
       (...) 
    </h:form> 

這裏是從服務器接收到的響應(注意選擇輸入標籤中選擇的所有行):

<partial-response> 
<changes> 
    <update id="j_idt162:frm:openingHoursTbl"> 
     <div id="j_idt162:frm:openingHoursTbl" class="ui-datatable ui-widget" 
      style="width: 300px"> 
      <table> 
       (...) 
      </table> 
      <input type="hidden" id="j_idt162:frm:openingHoursTbl_selection" 
       name="j_idt162:frm:openingHoursTbl_selection" value="0,1,2,3,4,5,6" /> 
     (...) 

感謝您的幫助

+0

這是有點多通過...請嘗試建立一個SSCCE,http://sscce.org/ – 2011-06-09 16:49:26

回答

0

老問題,但我最近有類似的問題,所以它可能會幫助有同樣問題的其他人。 我遇到的問題是刪除一行時,所以不太一樣,但無論如何。

當我刪除一行時,我不得不重置「選定的值」。所以我想這可以通過更新你正在使用的數據集來避免。

相關問題