gpt4 book ai didi

grails - g:sortableColumn缺少 Controller 名称(如何将 Controller 名称传递给g:sortableColumn?)

转载 作者:行者123 更新时间:2023-12-02 14:40:20 26 4
gpt4 key购买 nike

我正在为表使用 g:sortableColumn ,但出现此错误:

Caused by UrlMappingException: Unable to create URL for mapping [/()/()?/(*)?] and parameters [{sort=firstName, order=asc, action=list}]. Parameter [controller] is required, but was not specified!



这是我的代码:
    <g:sortableColumn property="firstName" title="FirstName"/>

这是我的课:
 package medicalautomation

class InformationDocs {

String firstName
String lastName
String idNum
String sex
String bloodType
Date birthDay
String job
String backGround
Double weight
Double height
Double bloodPressure
Double bloogSugar
String phoneNum
String address
String description


static constraints = {
firstName()
lastName()
idNum()
sex()
bloodType()
birthDay()
job()
backGround(maxSize:5000 )
weight(nullable: true)
height(nullable: true)
bloodPressure(nullable: true)
bloogSugar(nullable: true)
phoneNum(maxSize: 20)
address(maxSize: 200)
description(maxSize: 5000)


}
}

很明显,当我在另一个GSP页面而不是与 Controller 链接的页面中使用它时,我必须传递 Controller 名称。问题是我不知道如何,而且我不确定它是否与网址映射有关。

谢谢你的帮助

我的GSP代码:
<!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>



我使用 参数映射发送 Controller ,它正确调用了 列表操作,但是存在问题:

我更改了列表操作,并将其重定向到g:sortableColumn所在的gsp页面,但是表的顺序似乎没有改变。这是我在 Controller 中的代码: redirect(uri: "?sort=${params.sort}&order=${params.order}")

最佳答案

据我正确理解,gsp页不是
View -> medicalautomation.informationDocs.index 之一?

...如果您要将sortable-column重定向到其他 Controller ,则必须承担责任,提供与此 Controller 的列表方法相同的数据,该 Controller 最初显示gsp-page并必须指定此gsp-响应中的页面...(因为单击了sortable-column后,将再次显示同一页面,并按列表名称对列表进行排序)

因此,您的

<g:each in="${medicalautomation.InformationDocs.list()}" var="info">

有点让我感到困惑,因为在那里您直接调用了DomainClass-list方法而不使用了参数(指定了排序顺序),并且我认为即使您设法无异常(exception)地显示了排序顺序,它也会被丢弃。 ..?

在要显示的依赖列表受限的情况下,我经常使用jQuery-DataTable。这有可能对内置的行等进行排序。

和:

如果我想显示少量依赖数据,通常使用jQuery.ajax调用来获取数据并通过jQuery / Javascript修改html ...

希望我能有所帮助。

关于grails - g:sortableColumn缺少 Controller 名称(如何将 Controller 名称传递给g:sortableColumn?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com