在grails中自动完成1.3.7

时间:2013-04-03 04:52:03

标签: grails

我是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)
                        }
                    }
                }
            }
        }

}

3 个答案:

答案 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中的插件可以帮助您实现其他人的建议。