2013-04-03 39 views
-2

我是grails的新手。我正在使用grails 1.3.7版本。现在我需要使用列表中的自动完成功能。但我不知道该怎么做。任何人都可以帮助我吗?我真的需要从视图到控制器的帮助。谢谢大家。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) 
         } 
        } 
       } 
      } 
     } 

} 
+0

是不是有人?我非常需要帮助 –

回答

1

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

在你有或多或少的完整的例子,你可以使用文档。

祝你好运。

+0

我按照以下方式进行。我已经安装了richui。我写了你建议的代码。但它不起作用。我已经给出了我的视图页面和控制器操作。它可以帮助你建议我去做我的工作吗? –

+0

我的行为是从视图中调用。并且查询是检索用户名的id。但它没有显示出该领域的结果。发现数据时,只有下拉菜单显示为黄色。在result()中,'result'(),'username','id'这个词在控制器中被加下划线。我不知道下划线的含义是什么。你可以看看这个吗?我觉得我很接近它。 –

+0

Hi Sumon,你是否设法解决这个问题?这是一个链接,可能会有很多有用的信息:http://grails.org/doc/1.3.7/ref/Controllers/render.html – marko

0

自动完成需要JavaScript控制器。尝试jQuery UI.

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

+0

如何在我的grails应用程序中安装jquery。我从来没有做过。请提供任何建议。 –

0

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

+0

感谢您的建议。我试图安装jquery插件。但是当执行时显示以下消息>>“无法安装插件[jquery-1.7.1]。插件缺少JAR依赖关系。”现在我能为它做些什么。我需要你的建议人。 –

+0

你可能需要提交另一个问题。详细说明问题的细节和安装步骤。 – Alidad