2013-04-22 110 views
4

我遇到了grails插件remote-pagination的问题。我创建了一个新项目并复制粘贴插件的示例代码。有一个书籍类有一个列表视图和表格的模板。分页应该只更新div'filteredList'中的数据,但是页面仅用布局视图_filtered.gsp刷新。下面是代码:Grails远程分页刷新整个页面而不是div

控制器:

class BookController { 
def scaffold = true 

def list = { 
    [bookInstanceList: Book.list(max:10,offset: 0), bookInstanceTotal: Book.count()] 
} 

def filter = { 
    params.max = Math.min(params.max ? params.int('max') : 10, 100) 
    render(template: 'filter', model: [bookInstanceList: Book.list(params), bookInstanceTotal: Book.count()]) 
} 

}

的list.gsp - 视图:

<%@ page import="com.intelligrape.Book" %> 
    <html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <meta name="layout" content="main"/> 
    <g:set var="entityName" value="${message(code: 'book.label', default: 'Book')}"/> 
    <title><g:message code="default.list.label" args="[entityName]"/></title> 
</head> 

<body> 
<div class="nav"> 
    <span class="menuButton"><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a> 
    </span> 
    <span class="menuButton"><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]"/></g:link></span> 
</div> 

<div class="body"> 
    <h1><g:message code="default.list.label" args="[entityName]"/></h1> 
    <g:if test="${flash.message}"> 
     <div class="message">${flash.message}</div> 
    </g:if> 
    <div id="filteredList"> 
     <g:render template="filter"/> 
    </div> 
</div> 
</body> 
</html> 

_filtered.gsp - 模板的书表

<div> 
<div class="list"> 
<table> 
    <thead> 
    <tr> 

     <util:remoteSortableColumn property="id" title="${message(code: 'book.id.label', default: 'Id')}" update="filteredList" action="filter"/> 

     <util:remoteSortableColumn property="author" title="${message(code: 'book.author.label', default: 'Author')}" update="filteredList" action="filter"/> 

     <util:remoteSortableColumn property="name" title="${message(code: 'book.name.label', default: 'Name')}" update="filteredList" action="filter" max="5"/> 

     <util:remoteSortableColumn property="price" title="${message(code: 'book.price.label', default: 'Price')}" update="filteredList" action="filter"/> 

    </tr> 
    </thead> 
    <tbody> 
    <g:each in="${bookInstanceList}" status="i" var="bookInstance"> 
     <tr class="${(i % 2) == 0 ? 'odd' : 'even'}"> 

      <td><g:link action="show" id="${bookInstance.id}">${fieldValue(bean: bookInstance, field: "id")}</g:link></td> 

      <td>${fieldValue(bean: bookInstance, field: "author")}</td> 

      <td>${fieldValue(bean: bookInstance, field: "name")}</td> 

      <td>${fieldValue(bean: bookInstance, field: "price")}</td> 

     </tr> 
    </g:each> 
    </tbody> 
</table> 
</div> 
<div class="paginateButtons"> 
    <util:remotePaginate total="${bookInstanceTotal}" update="filteredList"  action="filter" pageSizes="[5: '5 on Page',10:'10 on Page',15:'15 on Page']" max="5" /> 
</div> 
</div> 

回答

4

我刚刚做广告d list.gsp页面的标题部分中的JavaScript库标记:

<g:javascript library="jquery" /> 
+0

嗯,它确实有效,但是会中断我选择的'max'项目。你有这个问题吗? – aa8y 2015-02-18 23:13:58

+0

不,这对我来说不是问题。上述固定我最初的问题。 – 2015-02-20 02:35:57

相关问题