我是grails的新手。我使用的是grails 1.3.7版本。现在我需要使用列表中的自动完成功能。但我不知道该怎么做。有人可以帮我这个吗?我真的需要从视图到控制器的帮助。谢谢大家。
这是我的视图页面>>>
<%@ page import="com.Login" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<resource:autoComplete skin="default" />
</head>
<body>
<g:form>
<div>
<label>Autocomplete Box :</label>
<richui:autoComplete name="allusername" action="${createLinkTo('dir': 'login/allusername')}" />
</div>
</g:form>
</body>
</html>
以下是我的控制器&gt;&gt;&gt;
package com
class LoginController {
def allusername = {
def logins = Login.findAllByUsernameLike("%${params.query}%")
//Create XML response
render(contentType: "text/xml") {
results() {
logins.each { login ->
result(){
username(login.username)
//Optional id which will be available in onItemSelect
id(login.id)
}
}
}
}
}
}
答案 0 :(得分:1)
我在1.3.7中做了同样的事情,最简单的方法是安装Rich UI插件(http://grails.org/plugin/richui#AutoComplete)
在文档中,您可以使用或多或少的完整示例。
祝你好运。答案 1 :(得分:0)
自动填充需要javascript。试试jQuery UI.
有很多例子。你需要的是一个控制器动作/ url,它将服务器JSON或XML作为对来自自动完成的AJAX调用的响应。我还建议升级到更新版本的grails,其中包含了jQuery。
答案 2 :(得分:0)
实施自动完成功能需要几个组件。一种是允许用户使用ajax键入并将其发送到服务器。这部分可以使用大量的javascript库来处理,例如,jquery自动完成或者如果你使用bootstrap typeahead。另一部分是服务器查找或搜索值,并通常以JSON格式将结果发送回浏览器。我刚才写了一篇关于这个的博客,看看它是否可以帮到你here 还有一些grails中的插件可以帮助您实现其他人的建议。