从Controller发送多个选定项目以查看

时间:2014-07-24 11:07:45

标签: grails groovy tags

我有一个项目列表,此应用程序的用户可以选择他想要的项目。现在,我想下载每个选定项目的详细信息。我有方法:

getSelectedItems()

返回以逗号分隔的每个所选项目的ID,例如,如果用户选择2,4,6,7项,则它将返回2,4,6,7,

现在,我想把这个字符串作为params传递给控制器​​。我正在使用

<g:link>

标签如:

<g:link controller="items" action="downloadSelecteditems" params="${getSelectedItemss}" class="btn btn-xs ">

现在,我如何将上述方法中的所有选定项目作为此标记中的参数发送?

感谢您的时间,考虑和指导: - )

2 个答案:

答案 0 :(得分:0)

尝试使用: 假设getSelectedItem包含一个列表,并从控制器传递列表:

ItemsController{
    renderSelectedList(){
          .....
       selectedList = callyourservice.getSelectedItems()
       render[view:'yourviewshowingtheselectedlist' model:[selectedList :selectedList ]]
    }
}

在你的视图中显示选择的列表gsp:

<g:set value="${getSelectedItemss}" var="selectedItems"/>
<g:link controller="items" action="downloadSelecteditems" 
params="[selectedItems:selectedItems]" class="btn btn-xs ">

在您的控制器中:

ItemsController{
.......
def downloadSelecteditems(){
     println params.selectedItems //will be visible
}

}

希望它有帮助.. 此致

答案 1 :(得分:0)

已经针对该问题提出了替代解决方案。实际上我们的JavaScript在浏览器端渲染,我们的标签,例如服务器端的渲染,这就是我们无法在标签中调用JavaScript方法的原因。

由于我希望传递多个选定项目的ID(我通过调用JavaScript方法getSelectedItems获得每个所选项目的逗号分隔ID),我使用了标记,因为标签在后面使用此标记也结束了。这就是我使用这个标签的方式:

 <a id="linkURL" href ="${createLink(controller: 'Controller', action: 'actionMethid')}" onclick="downloadSelectedItems()">

在JavaScript中我处理了onClick事件,其中我附加了seleceted Items的逗号分隔ID(由getSelectedItems JavaScript方法返回),其URL如下:

function downloadSelectedItems() {
    var selectedSessions = getSelectedItems();

    var link = document.getElementById("linkURL").href;
    alert(link);
    document.getElementById("linkURL").href=link+"?selectedSessions="+selectedSessions;
    link = document.getElementById("linkURL").href;
    alert(link);
}

因此,我能够在控制器端获得所选项目: - )