我很难更新h:form和p:panelGrid,所以你可以帮帮我吗? 我也试过@form,但没有任何反应。只有按F5才会出现预期的行为。
XHTML:
<h:form id="slct_img_form">
<p:panel header="Nova categoria">
<div style="margin: 2% 0 1.7% 0;">
<p><b>2.º Passo:</b> Selecione uma imagem para representar a categoria.</p></pre>
</div>
<p>debugging selected: #{catalogCategoryController.picasaPhoto.title}</p>
<p:dataGrid id="imgs_to_slct" var="img" value="#{siteImgsPicasaController.picasaPhotos}"
columns="3" rows="6" paginator="true"
emptyMessage="Nenhuma imagem até o momento!"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="6,9,12">
<p:column>
<p:panel header="#{img.title}" style="text-align:center; width: 300px;">
<table border="0" style="margin: 0 auto;">
<tr> </tr>
<tr>
<td colspan="3">
<p:lightBox group="false" transition="false">
<h:outputLink value="#{img.sourceUrl}" title="#{img.title}">
<h:graphicImage value="#{img.thumbnailUrl}" />
</h:outputLink>
</p:lightBox>
</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td><b>Dimensões:</b> #{img.width} x #{img.height} pixels</td>
</tr>
<tr>
<td>
<p:commandButton title="Selecionar" value="Selecionar"
rendered="#{img.sourceUrl ne catalogCategoryController.picasaPhoto.sourceUrl}"
update=":slct_img_form:imgs_to_slct">
<f:setPropertyActionListener value="#{img}"
target="#{catalogCategoryController.picasaPhoto}" />
</p:commandButton>
<p:commandButton title="Selecionar" value="Selecionar" icon="ui-icon-check"
rendered="#{img.sourceUrl eq catalogCategoryController.picasaPhoto.sourceUrl}"
disabled="true" />
</td>
</tr>
<tr> </tr>
</table>
</p:panel>
</p:column>
</p:dataGrid>
<div style="font-weight: bold; margin: 2% 0 1% 0;">
<p:commandButton value="Voltar" icon="ui-icon-arrow-1-w"
ajax="false" type="submit"
action="new">
</p:commandButton>
<p:commandButton value="Gravar" icon="ui-icon-disk"
ajax="false" type="submit"
action="#{catalogCategoryController.add}">
</p:commandButton>
</div>
</p:panel>
</h:form>
...
ManagedBean:
@Named
@SessionScoped
public class CatalogCategoryController implements Serializable{
...
private PicasaPhoto picasaPhoto;
public PicasaPhoto getPicasaPhoto() {
return picasaPhoto;
}
public void setPicasaPhoto(PicasaPhoto picasaPhoto) {
this.picasaPhoto = picasaPhoto;
this.selectedImage = new Media(picasaPhoto, currentAccount);
}
....
}
谢谢,
答案 0 :(得分:3)
将prependId="false"
添加到form
属性,然后primefaces不会在其他组件ID之前添加form ID
,否则你必须指定组件的“完整”路径(如果它不在特定的form
)。然后使用update="@form"
或update=":imgs_to_slct"