Grails g:sortableColumn缺少控制器名称(如何将控制器名称传递给g:sortableColumn?)
我正在为我的表使用g:sortableColumn,但我得到以下错误: 由UrlMappingException引起:无法创建用于映射的URL [/()/()?/(*)?]和参数[{sort=firstName,order=asc, action=list}]。参数[controller]是必需的,但不是必需的 指定的 这是我的代码:Grails g:sortableColumn缺少控制器名称(如何将控制器名称传递给g:sortableColumn?),grails,gsp,grails-domain-class,grails-controller,Grails,Gsp,Grails Domain Class,Grails Controller,我正在为我的表使用g:sortableColumn,但我得到以下错误: 由UrlMappingException引起:无法创建用于映射的URL [/()/()?/(*)?]和参数[{sort=firstName,order=asc, action=list}]。参数[controller]是必需的,但不是必需的 指定的 这是我的代码: <g:sortableColumn property="firstName" title="FirstName"/> 很明显,当我在另一个G
<g:sortableColumn property="firstName" title="FirstName"/>
很明显,当我在另一个GSP页面中使用它时,而不是在链接到控制器的页面中使用它时,我必须传递控制器名称。问题是我不知道如何使用它,而且我不确定它是否与URL映射有关
谢谢你的帮助
我的普惠制代码:
<!doctype html>
<html>
<head>
<meta name="layout" content="main"/>
<g:javascript library="jquery" plugin="jquery" />
<title>Welcome to Grails</title>
</head>
<body>
<div class="topnav">
<p style="color: white">Top Nav</p>
</div>
<div class="sidenav">
<div class="sidenavcontent" >
<h1>HELLO!!!</h1>
<ul>
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<li><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
</g:each>
</ul>
<table>
<tr>
<g:sortableColumn property="firstName" title="FirstName"/>
<g:sortableColumn property="lastName" title="LastName"/>
<g:sortableColumn property="idNum" title="ID Number"/>
</tr>
<g:each in="${medicalautomation.InformationDocs.list()}" var="info">
<tr>
<td><g:remoteLink id="${info.id}" controller="informationDocs" action="show" update="showdetails">${info.firstName}</g:remoteLink></td>
<td>${info.lastName}</td>
<td>${info.idNum}</td>
</tr>
</g:each>
</table>
</div>
</div>
<div class="bodycont">
<div id="showdetails"></div>
</div>
欢迎来到Grails
顶部导航
你好
- ${c.fullName}
${info.firstName}
${info.lastName}
${info.idNum}
我使用参数映射发送控制器,它正确调用了列表操作,但出现了一个问题:
我更改了列表操作,它重定向到gsp页面,g:sortableColumn是,但表的顺序似乎没有改变。这是我在控制器中的代码:
redirect(uri:“?sort=${params.sort}&order=${params.order}”)
正如我正确理解的那样,gsp页面不是
视图->医疗自动化.informationDocs.index一个
。。。如果要将可排序列重定向到其他控制器,则必须承担责任,为最初显示gsp页面并在响应中指定此gsp页面的控制器提供与列表方法相同的数据。。。(因为在单击可排序列后,将再次显示相同的页面,并按列名排序列表)
因此,你的
<g:each in="${medicalautomation.InformationDocs.list()}" var="info">
让我有点困惑,因为在这里,您直接调用DomainClass list方法,而不使用参数(指定排序顺序),我认为您的排序顺序将被丢弃,即使您管理它来显示它而没有异常
在我想要显示的依赖列表有限的情况下,我经常使用jquerydatatable。它有可能对内置的线路等进行排序
以及:
在需要显示一小部分依赖数据的情况下,我通常使用jQuery.ajax调用来获取数据并通过jQuery/Javascript修改html
希望我能帮点忙。为了更好地理解,请将GSP代码放在使用此可排序列的位置。@ajaypanchal我更新了posttry,将params=“${params}”添加到@vahid It works!!!Tnx@vahid我更新了问题,请你看一下好吗?是的,不是gsp。如您所述,单击g:sortableColumn调用控制器的列表操作
<g:each in="${medicalautomation.InformationDocs.list()}" var="info">