Grails-如何在“按名称选择”中对选项进行排序?
如何在GSP文件中按名称对选项进行排序Grails-如何在“按名称选择”中对选项进行排序?,grails,select,Grails,Select,如何在GSP文件中按名称对选项进行排序 <select name="degree" id="degree" class="required" value="${userDegree}" > <option value="">Please Select</option> <g:each in="${Degree.list()}" var="degree"> <g:if test="${degree.name == use
<select name="degree" id="degree" class="required" value="${userDegree}" >
<option value="">Please Select</option>
<g:each in="${Degree.list()}" var="degree">
<g:if test="${degree.name == userDegree}">
<option value="${degree.name}" selected="selected">${degree.name}</option>
</g:if>
</g:each>
</select>
请选择
${degree.name}
在我看来,您应该将列表的组成移动到controller,在那里排序,并按您希望的方式将其传递给视图,并在带有“from”的视图中使用它
对于排序本身,请查看
要包含在select look(选择外观)中,您应该移动到controller(控制器)列表的组成部分,在那里排序,并按您希望的方式将其传递给视图,并在视图中使用“from”(来自) 对于排序本身,请查看
如果您总是希望按照名称的字母顺序对学位进行排序,我建议您在域类映射中添加以下内容:
static mapping = {
...
sort name: "asc"
}
如果您总是希望按照名称的字母顺序对学位进行排序,我建议您将其放在域类映射中:
static mapping = {
...
sort name: "asc"
}
是的,您可以获取
Degree
对象列表,并在视图中对其进行排序,但不建议将视图与数据库逻辑混合使用。
如果以后你想过滤掉无效度数列表,你会怎么做?在视图上添加逻辑?那会很混乱 所以我建议你这样做,在你的控制器上获取学位列表(让这个控制器调用另一个服务来给你提供学位列表更好),然后将它们传递到UI
degrees = Degree.list(sort:"name", order:"asc")
然后将其传递到模型映射中的视图
您的geach将如下所示:
<g:each in="${degrees.list()}" var="degree">
使用grails进行编码时,请访问Burt Beckwith这是一个非常重要的话题。是的,您可以获取
度
对象的列表,并在视图中对其进行排序,但不建议将视图与db逻辑混合使用。
如果以后你想过滤掉无效度数列表,你会怎么做?在视图上添加逻辑?那会很混乱 所以我建议你这样做,在你的控制器上获取学位列表(让这个控制器调用另一个服务来给你提供学位列表更好),然后将它们传递到UI
degrees = Degree.list(sort:"name", order:"asc")
然后将其传递到模型映射中的视图
您的geach将如下所示:
<g:each in="${degrees.list()}" var="degree">
请在使用grails编写代码时访问,作者是Burt Beckwith这是一个非常重要的话题。您可以将列表顺序放在选择标记处,如下所示:
<select name="degree" id="degree" class="required" from="{$Degree.list('sort':name, order: 'asc')}" value="${userDegree}" >
...
...
</select>
...
...
您可以将列表顺序放在选择标记处,如下所示:
<select name="degree" id="degree" class="required" from="{$Degree.list('sort':name, order: 'asc')}" value="${userDegree}" >
...
...
</select>
...
...
@esauro-还有更简单的解决方案。是的,它更简单,但与MVC层不一致,因为您将在视图中完成应该在控制器(或服务)中完成的事情@esauro-有更简单的解决方案。是的,它更简单,但与MVC层不一致,因为您将在视图中执行应该在控制器(或服务)中执行的操作