Grails 数据表可以';表中显示的行数不能超过10行

Grails 数据表可以';表中显示的行数不能超过10行,grails,Grails,尝试使用dataTable列出表中的用户时遇到问题 到目前为止,一切正常,但当我输入超过10个用户时,它仍然显示10行,并且不能查看超过10行。我一直在尝试使用10 25 50 100个条目的显示,但仍然无法工作 下面是我尝试使用的函数的屏幕截图: 这是我使用的表格: $(document).ready(function() { $('table.dataTable').dataTable(); } ); 这是我的域名: class Pilot { String fNa

尝试使用dataTable列出表中的用户时遇到问题

到目前为止,一切正常,但当我输入超过10个用户时,它仍然显示10行,并且不能查看超过10行。我一直在尝试使用10 25 50 100个条目的显示,但仍然无法工作

下面是我尝试使用的函数的屏幕截图:


这是我使用的表格:

$(document).ready(function() {
    $('table.dataTable').dataTable();

} );
这是我的域名:

class Pilot {

    String fName
    String lName

    static constraints = {
    }
}
这是控制器:

class PilotController {

    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

    def index() {
        redirect(action: "list", params: params)
    }

    def list(Integer max) {
        params.max = Math.min(max ?: 10, 100)
        [pilotInstanceList: Pilot.list(params), pilotInstanceTotal: Pilot.count()]
    }

    def create() {
        [pilotInstance: new Pilot(params)]
    }

    def save() {
        def pilotInstance = new Pilot(params)
        if (!pilotInstance.save(flush: true)) {
            render(view: "create", model: [pilotInstance: pilotInstance])
            return
        }

        flash.message = message(code: 'default.created.message', args: [message(code: 'pilot.label', default: 'Pilot'), pilotInstance.id])
        redirect(action: "show", id: pilotInstance.id)
    }

    def show(Long id) {
        def pilotInstance = Pilot.get(id)
        if (!pilotInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "list")
            return
        }

        [pilotInstance: pilotInstance]
    }

    def edit(Long id) {
        def pilotInstance = Pilot.get(id)
        if (!pilotInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "list")
            return
        }

        [pilotInstance: pilotInstance]
    }

    def update(Long id, Long version) {
        def pilotInstance = Pilot.get(id)
        if (!pilotInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "list")
            return
        }

        if (version != null) {
            if (pilotInstance.version > version) {
                pilotInstance.errors.rejectValue("version", "default.optimistic.locking.failure",
                          [message(code: 'pilot.label', default: 'Pilot')] as Object[],
                          "Another user has updated this Pilot while you were editing")
                render(view: "edit", model: [pilotInstance: pilotInstance])
                return
            }
        }

        pilotInstance.properties = params

        if (!pilotInstance.save(flush: true)) {
            render(view: "edit", model: [pilotInstance: pilotInstance])
            return
        }

        flash.message = message(code: 'default.updated.message', args: [message(code: 'pilot.label', default: 'Pilot'), pilotInstance.id])
        redirect(action: "show", id: pilotInstance.id)
    }

    def delete(Long id) {
        def pilotInstance = Pilot.get(id)
        if (!pilotInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "list")
            return
        }

        try {
            pilotInstance.delete(flush: true)
            flash.message = message(code: 'default.deleted.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "list")
        }
        catch (DataIntegrityViolationException e) {
            flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'pilot.label', default: 'Pilot'), id])
            redirect(action: "show", id: id)
        }
    }
}
以下是列表视图:

<!DOCTYPE html>
<html>
    <head>
        <meta name="layout" content="bstheme">
        <g:set var="entityName" value="${message(code: 'pilot.label', default: 'Pilot')}" />
        <title><g:message code="default.list.label" args="[entityName]" /></title>
    </head>
    <body>
        <div class="col-md-12">
            <div class="panel panel-custom">
        <!--<a href="#list-pilot" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a>-->
        <div class="panel-heading">
            <g:message code="default.list.label" args="[entityName]" />

            <div class="panel-options">
                <a class="home" href="${createLink(uri: '/')}"><i class="glyphicon glyphicon-home"></i></a>
                <g:link class="create" action="create"><i class="glyphicon glyphicon-plus"></i></g:link>
            </div>
        </div>
        <div class="panel-body">
        <div id="list-pilot" class="content scaffold-list" role="main">
            <!--<h1><g:message code="default.list.label" args="[entityName]" /></h1>-->
            <g:if test="${flash.message}">
            <div class="message" role="status">${flash.message}</div>
            </g:if>
            <table class="dataTable table table-striped table-hover table-responsive">
                <thead>
                    <tr>

                        <g:sortableColumn property="fName" title="${message(code: 'pilot.fName.label', default: 'First Name')}" />

                        <g:sortableColumn property="lName" title="${message(code: 'pilot.lName.label', default: 'Last Name')}" />

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

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

                        <td>${fieldValue(bean: pilotInstance, field: "lName")}</td>

                    </tr>
                </g:each>
                </tbody>
            </table>
            <%-- <div class="pagination">
                <g:paginate total="${pilotInstanceTotal}" />
            </div> --%>
        </div>
    </div>
</div>
</div>
    </body>
</html>

${flash.message}
${fieldValue(bean:pilotInstance,字段:“fName”)}
${fieldValue(bean:pilotInstance,字段:“lName”)}
PilotController.list(..)如果没有给出最大值,则返回10个条目,但是您没有设置最大值,其他任何事情都不会发生


您注释了分页,因此无法获取以下条目。

找到了此问题的解决方案

def list(Integer max) {
        params.max = Math.min(max ?: 10, 100)
        [pilotInstanceList: Pilot.list(params), pilotInstanceTotal: Pilot.count()]
    }
您只需删除:

Math.min(max?:10100)
在控制器中

所以你的代码应该是这样的

def list(Integer max) {
        params.max 
        [pilotInstanceList: Pilot.list(params), pilotInstanceTotal: Pilot.count()]
    }
如果你们中有人面临同样的问题,希望这对你们将来有所帮助


Kam rabwa

谢谢Ivar,我现在添加了视图显示列表时的URL是什么?它是否包含
max
query参数?params.max=Math.min(max?:10100),看起来您还没有将max传递给控制器。检查调用列表方法的代码。检查(打印)控制器上该调用的记录如果计数正常,则会出现UI问题,您的表可能无法刷新。是否确实需要转储问题中的整个脚手架控制器?否,
list()
返回数据库中的所有记录,只有在控制器中,
params.max=Math.min(max?:10100)