1

我也阅读了 BalusC 的帖子(此处),但仍然无法从 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);
    }

我正在使用: primefaces:3.3.1(tomcat 7 + Java 1.6)

4

1 回答 1

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 版

于 2012-08-22T13:12:36.620 回答