2013-04-03 43 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