我正在寻找关于如何在重新渲染数据网格时处理奇怪效果的提示。我有以下网格结构:
<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}&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>
网格在搜索输入字段触发的onkeyup事件上获得reRendered。到目前为止没有魔法。现在问题是reRendering改变了生成的html(DOM)的结构。结果链接不再起作用了。
第一次呈现页面时的firebug-html-inspect如下:
<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不再包装product-element。任何人都可以给我一个关于这里可能出错的提示吗? 任何帮助赞赏。 提前谢谢。
约什
ps:使用Seam 2.2.2 / JSF Mojarra 2.0.3 / RichFaces 3.3.3
答案 0 :(得分:0)
确保您的allProducts
bean具有ViewScope而不是RequestScope。因此,在重新渲染时,数据将在呼叫中持续存在。