2015-11-09 96 views
0

我有一張使用@for組件生成的表格。 表中的一列包含一個直接鏈接,該鏈接調用方法並向表源添加更多行。掛毯:update @for on directLink

現在我想要做的就是在UI上刷新此表。 它工作正常,如果我刷新整個頁面。但是當我在directlink上使用updateComponent標記時。我只看到1排。我的理解是,我的組件是連續的,這就是爲什麼只有一行正在更新。

你可以建議,我怎麼才能更新整個表格。 我試着把@for放在說tbody上,但那不行。

代碼:

<div id="compFeeTableDiv" jwcid="[email protected]" style="visibility: hidden"> 
    <fieldset> 
     <legend> 
     </legend> 
     <table height="100%" cellSpacing="2" cellPadding="2" width="100%" border="0" id="compFeeTable"> 
      <thead> 
       <tr> 
        <th> 
         <span key="abc" /> 
        </th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr jwcid="@For" source="ognl:compFees" value="ognl:compFee" element="tr" index="ognl:loopIndex"> 
        <td valign="center" align="center" height="15" class="listlabel2"> 
         <span jwcid="@If" condition="true"> 
          <div jwcid="@Any"> 
           <a href="" jwcid="@DirectLink" name="ognl:'edit_link_'" listener="listener:newCompFee" size="5"> 
            <img src="images/addAction.png" alt="addAction"> 
           </a> 
          </div> 
         </span> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
    </fieldset> 
</div> 

備份的Java偵聽器方法

public void newcompFee(IRequestCycle cycle) { 
    compFee newcompFee = compFeeFactory.createDefaultcompFee(null,getAgent().getCompany()); 
    List<compFee> compFees = getcompFees(); 
    compFees.add(newcompFee); 
    setcompFees(compFees); 
    getAgent().getCompany().setcompFeeApplicable(YesNo.Yes); 
} 

我曾嘗試上直接連結的updateComponent屬性並將其指向我@for的ID。但刷新後只能呈現1行。

我正在使用tapestry 4.1.6。

請指教。 謝謝

+1

''未關閉 – Tushar

+0

@Tushar:感謝您指出了這一點。修復。 –

+0

@Tushar。事實證明..不關閉是問題。我關閉了。現在我可以使用directlink上的'updateComponent'屬性刷新whoole div。謝謝。我會發佈一個答案。 –

回答

0

所以。 這個問題真的很愚蠢。正如@Tusar在他的評論中指出的那樣。這是因爲<thead>未關閉。

什麼工作對我來說:

<div id="compFeeTableDiv" jwcid="[email protected]" style="visibility: hidden"> 
<fieldset> 
     <legend> 
     </legend> 
     <table height="100%" cellSpacing="2" cellPadding="2" width="100%" border="0" id="compFeeTable"> 
      <thead> 
       <tr> 
        <th> 
         <span key="abc" /> 
        </th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr jwcid="@For" source="ognl:compFees" value="ognl:compFee" element="tr" index="ognl:loopIndex"> 
        <td valign="center" align="center" height="15" class="listlabel2"> 
         <span jwcid="@If" condition="true"> 
          <div jwcid="@Any"> 
           <a href="" jwcid="@DirectLink" name="ognl:'edit_link_'" listener="listener:newCompFee" size="5" updateComponent="compFeeTableDivTap"> 
            <img src="images/addAction.png" alt="addAction"> 
           </a> 
          </div> 
         </span> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
    </fieldset> 
</div> 

所以基本上,我呼籲直接連結的updateComponent封閉格。完美的作品。

UPDATE 糾正後。整個頁面正在刷新。 這裏的問題是updateComponent中有一個錯字。這應該是updateComponents

所有完美的作品現在