-2

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

下面是我的控制器>>>

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

}
4

3 回答 3

1

我在 1.3.7 中做过同样的事情,最简单的方法是安装 Rich UI 插件(http://grails.org/plugin/richui#AutoComplete

在文档中,您可以使用或多或少完整的示例。

祝你好运。

于 2013-04-03T08:08:18.797 回答
0

自动完成需要 javascript。试试jQuery UI。

有很多例子。您基本上需要的是一个控制器操作/url,它将服务器 JSON 或 XML 作为对来自自动完成的 AJAX 调用的响应。我还建议升级到已经包含 jQuery 的更新版本的 grails。

于 2013-04-03T06:59:51.843 回答
0

实现自动完成需要几个组件。一种是允许用户使用 ajax 键入并将其发送到服务器。这部分可以使用许多 javascript 库来处理,例如 jquery 自动完成或者如果您使用的是 bootstrap typeahead。另一部分是服务器查找或搜索值并将结果通常以 JSON 格式发送回浏览器。前段时间我写了一篇关于这个的博客,看看它是否可以帮助你在这里 grails中还有一些插件可以帮助你实现这一点,正如其他人所建议的那样。

于 2013-04-03T16:26:36.753 回答