2014-07-02 51 views
0

我正在爲大型數據集構建Grails應用程序,並面臨由於在應用程序的JavaScript端(客戶端)加載大型json文件而導致的各種問題,因此導致瀏覽器崩潰。現在將相關數據加載到瀏覽器中用於Grails應用程序

,我已經意識到我正在上只有JavaScript端的所有用戶的選擇,但我假設它可以在Grails的控制器端進行,也使用標籤和「PARAMS」

我要找在:

http://grails.org/doc/latest/ref/Tags/link.html 
http://grails.org/doc/latest/ref/Tags/form.html 

但是,我很新,這需要一些方向,如果我想要做的是可行的或不是? 基本上,我希望用戶選擇一堆下拉列表,其值被傳遞給我的grails控制器,並且控制器將過濾的數據發送到JavaScript加載,這樣只有相關數據被髮送到瀏覽器,並且它正常運行。

UPDATE

package marchmock2 
class Tablev1class { 
Date date_hour 
String mv 
String pagetype 
Integer visits 
Integer visits_ly 
Integer visits_lw 
String time_period 
String platform 
String device 
String browser 


static mapping = { 
table "pgtyp" 
version false   
date_hour column: "date_hour" 
mv column: "mv" 
pagetype column: "pagetype" 
visits column: "visits" 
visits_ly column:"visits_ly" 
visits_lw column:"visits_lw" 
time_period column:"time_period" 
platform column:"platform" 
device column:"device" 
browser column:"browser" 
} 
static constraints = { 
} 
} 

這是我的領域類的樣子,也沒有依賴性。我想要的是創建從各種MV,頁面類型,平臺,設備,瀏覽器的選擇,並作出選擇傳遞給控制器​​,該控制器有一個查詢到數據庫

+0

創建g:選擇列出相同表集合optionValue的元素爲不同對象Ie第一selwct optionValue mv第二pagetype等等。如果你需要它來計算用戶選擇的東西,然後看看onchange和一個遠程調用xall控制器來處理選定的元素 – Vahid

回答

0

我想你可能需要編輯問題並重新定義您在上一節中的要求。

你可以到這裏看看:

I want my selects dropdowns to auto populate with Ajax in Grails website

在這個問題上我有點分手你怎麼能使用遠程調用從一個現場收集的數據來生成下一個選擇?是需求的這一部分還是這些所有單獨選擇都不相互依賴?

如果依賴關係選擇然後採取在ajaxdependancyselection插件,其中正確的嵌套選擇可以是achieved.If選擇是從大型數據集的話,說不定就主要問題的建議很可能會更快.....

UPDATE 因爲它們是獨立的,你可以加載了

<g:select name="input1" from="${domainClass1.list()}" ...> 

每個domainClass通話 發佈回控制器

在你的控制器

def d1=domainClass1.get(params.input1) 
def d2=domainClass2.get(params.input2) 

render (view: 'something', model: [ d1: d1, d2:d2 ]) 

等 那麼你可以擴大各自通過domainClass對象,並得到具體的相關元素滿分各爲D1 D2等....

我真的不確定客觀所以道歉,如果這不是你要找的

更新來更新

不確定爲什麼你需要有選擇每個對象的s,也許正如你所說,你想然後做一些與價值觀.. 在這種情況下,看看最後一個例子的option鍵和optionValue都設置到設備,以便它會顯示在選擇和用戶選擇設備最終會被實際的設備選擇

<g:select id="mv" name="mvid" from="${marchmock2.Tablev1class.list()}" optionKey="id" optionKey="mv" required="" value="${params?.mvid}" class="many-to-one"/> 
<g:select id="mv" name="mvid" from="${marchmock2.Tablev1class.list()}" optionKey="id" optionKey="pagetype" required="" value="${params?.mvid}" class="many-to-one"/> 

<g:select id="mv" name="mvid" from="${marchmock2.Tablev1class.list()}" optionKey="id" optionKey="platform" required="" value="${params?.mvid}" class="many-to-one"/> 

<g:select id="mv" name="mvid" from="${marchmock2.Tablev1class.list()}" optionKey="device" optionKey="device" required="" value="${params?.mvid}" class="many-to-one"/> 

我們擴大這個

<g:select id="mv" name="mvid" from="${marchmock2.Tablev1class.list()}" optionKey="device" optionKey="device" required="" value="${params?.mvid}" class="many-to-one" onchange="${remoteFunction (
     controller: 'someController', 
     action: 'someAction', 
     params: "'device=' + this.value", 
     update: 'newDivId' 
    )}"/> 

<div id="newDivId"> 
<!-- your output from when user selects something from above will end up showing the result from the someController/someAction?device={selected} will be repesented in here --> 
</div> 
+0

在我的應用程序中不需要依賴關係選擇。所有下拉菜單都是獨立的 – Nisha

+0

添加了更新以回答 – Vahid

+0

在我的應用程序中不需要依賴項相關的選擇。所有下拉菜單都是獨立的。此外,我們有巨大的數據集,因此在瀏覽器內對這些數據集進行過濾並不是一個好主意。因此,我想以某種方式在控制器內部進行數據過濾(在GSP中選擇的角度),然後將其發送到瀏覽器,以便減少瀏覽器的負載。另外,對於Grails新手來說,我甚至不知道這是否可行。如果您有任何建議,請告訴我們。它將非常有幫助 – Nisha

相關問題