我也阅读了BalusC的帖子(here),但仍然无法从dataGrid进行ajax调用。 是不是dataGrid不支持ajax调用?或者我错过了什么?
尝试了所有的东西,这个方法在dataGrid之外被击中,所以我假设有些事情与dataGrid有关。首先我的页面被包含在模板中,我删除了它,但仍然没有运气。
我的jsf:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Order select</title>
</h:head>
<h:body>
<p:layout style="min-width:400px;min-height:400px;" id="layout">
<p:layoutUnit id="rightLayout" position="east" size="100" minSize="200" maxSize="200">
right
</p:layoutUnit>
<p:layoutUnit position="center" >
<h:form id="imgForm" style="text-align: center">
<p:dataGrid var="img"
value="#{orderBean.userMedia.mediaList}"
columns="4"
rows="16"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="9,12,15">
<p:panel>
<p:commandLink actionListener="#{orderBean.selectImage}" update="@form">
<p:graphicImage value="#{img.thumbNail.getString('url')}"/>
</p:commandLink>
</p:panel>
</p:dataGrid>
</h:form>
</p:layoutUnit>
</p:layout>
</h:body>
</html>
我的托管bean(viewScoped)方法:
public void selectImage()
{
String methodName = "selectImage()";
log.info("Entering :"+methodName);
}
我正在使用: 主要内容:3.3.1 (tomcat 7 + Java 1.6)
答案 0 :(得分:1)
正如primefaces文档中所述,您必须将p:datagrid
内的所有内容放在p:column
<p:dataGrid var="img"
value="#{orderBean.userMedia.mediaList}"
columns="4"
rows="16"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="9,12,15">
<p:column>
<p:panel>
<p:commandLink actionListener="#{orderBean.selectImage}" update="@form">
<p:graphicImage value="#{img.thumbNail.getString('url')}"/>
</p:commandLink>
</p:panel>
</p:column>
</p:dataGrid>
从primefaces版本3.4开始,这不是必需的,但您使用的是版本3.3.1