2012-05-24 44 views
1

我正在尋找如何處理重新渲染數據網格的奇怪效果的提示。我有以下網格結構:JSF RichFaces reRender事件更改豐富:dataGrid結構

<rich:dataGrid id="allProductsGrid" value="#{allProducts}" var="_product">      
    <s:div styleClass="grid-element"> 
     <s:link view="/product.xhtml"> 
      <s:div styleClass="product-element">                           
       <h:graphicImage value="/content/images?id=#{_product.image.id}&amp;width=170"/>                                                           
      </s:div>       
      <div id="title"> 
       <h:outputText value="#{_product.name}" /> 
      </div> 
      <f:param name="productId" value="#{_product.id}" /> 
     </s:link>                 
    </s:div> 
</rich:dataGrid> 

網格被reRendered由搜索輸入字段觸發的onkeyup事件。目前沒有魔法。現在問題是reRendering會改變html生成的結構(DOM)。結果鏈接不再工作。

該頁面的第一渲染螢火蟲-HTML的檢查如下:

<div id="j_id86:allProductsGrid:0:j_id124" class="grid-element"> 
    <a id=".. " onclick=".." href="/portal/product.vc?productId=22&cid=69"> 
     <div id="j_id86:allProductsGrid:0:j_id126" class="product-element"> 
      <img src="/portal/content/images?id=&width=170"> 
     </div> 
     <div id="title">Sample Product</div> 
    </a> 
</div> 

重新描繪電網後的HTML輸出是:

<div id="j_id86:allProductsGrid:0:j_id124" class="grid-element"> 
    <a id=".." onclick=".." href="/portal/product.vc?productId=22&cid=76"></a> 
    <div id="j_id86:allProductsGrid:0:j_id126" class="product-element"> 
     <img src="/portal/content/images?id=&width=170"> 
    </div> 
    <div id="title">Sample Product</div> 
</div> 

的結果是, a-tag不再包裝產品元素。任何人都可以給我一個關於這裏可能會出錯的提示嗎? 任何幫助表示讚賞。 在此先感謝。

喬希

PS:使用Seam 2.2.2/JSF鑽嘴魚科2.0.3/3.3.3的RichFaces

+0

真的沒有人面臨這種​​影響? – joshd

+0

您是否嘗試過更改bean的範圍?它看起來像ajax請求作爲一個新的請求縫,這就是爲什麼cid是不同的。 –

回答

0

確保您allProducts bean擁有ViewScope代替RequestScope。因此,在重新提交數據的過程中會持續存在。

+0

感謝您的回覆。可響應的動作bean在ScopeType.PAGE中 - 但實際上我不認爲這個問題是範圍問題,不是嗎? - 因爲網格數據(即產品)正確刷新。 – joshd

+0

歡迎來到StackOverflow。如果這是您正在尋找的答案,請不要忘記[將此帖標記爲答案](http://meta.stackexchange.com/a/5235/182862) –

相關問題