Grails multi-select插件不工作

Grails multi-select插件不工作,grails,multi-select,Grails,Multi Select,我的grails应用程序中有6个下拉列表是使用g select标记编写的,现在我需要在所有下拉列表中进行多个选择,但我无法使用 首先,我在Buildconfig.groovy中包含了插件-multiselect和资源,使用以下行: compile ":multi-select:0.2" runtime ":resources:1.2.2" 以下代码在我的“index.gsp”文件中 我的早期代码和基本单选下拉列表: <g:select from="['AFFILIATES', 'CSE'

我的grails应用程序中有6个下拉列表是使用g select标记编写的,现在我需要在所有下拉列表中进行多个选择,但我无法使用

首先,我在Buildconfig.groovy中包含了插件-multiselect和资源,使用以下行:

compile ":multi-select:0.2"
runtime ":resources:1.2.2"
以下代码在我的“index.gsp”文件中

我的早期代码和基本单选下拉列表:

<g:select from="['AFFILIATES', 'CSE','DISPLAYADS','EMAIL','MOBILEWEB','OTHERS','ORGANIC','SEO', 'SEM']" name="mv" id = "mv" 
           onchange="${remoteFunction(
           controller:'Com', 
           action:'ajaxGetMv', 
           // params:'\'mv=\' + escape(this.value)',
           params:'\'mv=\'+this.value+\'&department=\'+$(\'department\').value+\'&device=\'+$(\'device\').value+\'&browser=\'+$(\'browser\').value+\'&platform=\'+$(\'platform\').value+\'&time_period=\'+$(\'time_period\').value+\'&metric=\'+$(\'metric\').value',
           onSuccess: 'printpgtyp(data)')}"
></g:select> 
现在,索引和控制器只针对一个值进行通信,我如何让它们针对多个选择进行通信?
我认为控制器必须在这里进行更改

Grails2.x支持多选而无需插件。下面是文档中的一个示例。multi-select的UI不是最好的

// create multiple select
<g:select name="cars"
      from="${Car.list()}"
      value="${person?.cars*.id}"
      optionKey="id"
      multiple="true" />
//创建多个选择
以下是我如何访问视图和控制器中的多选复选框的示例:

   <g:each in="${Car.findAllByActive(true)}" var="car">
        <div class="span4 checkbox">
             <g:checkBox name="cars" value="${car.id}" checked="${car in instance?.cars}" />
              <label>${car.name}</label>
        </div>
    </g:each>

    params.cars.each { it ->
        instance.cars.add(Car.findById(it as Long))
    }

${car.name}
params.cars.each{it->
instance.cars.add(Car.findById(尽可能长))
}

我尝试了这个,我得到了一个不同类型的下拉列表,在这里我可以通过按control键来选择multiple(这很奇怪)。multi-select下拉列表到底应该如何实现?而且,它仍然只获取第一个选定的值。检查我的更新答案。默认的html multi-select不是最好的UI。我使用了复选框,并用上面的控制器代码处理它们,因为更新没有像我预期的那样工作。多视图是cos of multiple=“true”,您所说的第一个值是什么意思?你的意思是其他参数,如部门等没有出现?
<g:select from="['AFFILIATES', 'CSE','DISPLAYADS','EMAIL','MOBILEWEB','OTHERS','ORGANIC','SEO', 'SEM']" name="mv" id = "mv" multiple="true"
           onchange="${remoteFunction(
           controller:'Com', 
           action:'ajaxGetMv', 
           // params:'\'mv=\' + escape(this.value)',
           params:'\'mv=\'+this.value+\'&department=\'+$(\'department\').value+\'&device=\'+$(\'device\').value+\'&browser=\'+$(\'browser\').value+\'&platform=\'+$(\'platform\').value+\'&time_period=\'+$(\'time_period\').value+\'&metric=\'+$(\'metric\').value',
           onSuccess: 'printpgtyp(data)')}"
></g:select> 
    def ajaxGetMv = {
            if(params.metric == 'Marketing visits')
            {
            def com = Com.executeQuery("select p.date_hour, p.visits, case when visits_ly IN (0,null) THEN 0 ELSE ((visits/visits_ly - 1)*100) END as yoy, case when visits_lw IN (0,null) THEN 0 ELSE ((visits/visits_lw - 1)*100) END as wow, p.mv, p.browser, p.department, p.platform, p.device, p.time_period from Com p where p.department = ? and p.device = ? and p.browser = ? and p.platform = ? and p.mv = ? and p.time_period = ? order by col_0_0_ asc ",[params.department, params.device, params.browser, params.platform, params.mv, params.time_period])
            render com as JSON
            }
//.........else if and so on for all my metrics
// create multiple select
<g:select name="cars"
      from="${Car.list()}"
      value="${person?.cars*.id}"
      optionKey="id"
      multiple="true" />
   <g:each in="${Car.findAllByActive(true)}" var="car">
        <div class="span4 checkbox">
             <g:checkBox name="cars" value="${car.id}" checked="${car in instance?.cars}" />
              <label>${car.name}</label>
        </div>
    </g:each>

    params.cars.each { it ->
        instance.cars.add(Car.findById(it as Long))
    }