g:select 的替代项(多个值)

Alternative for g:select (multiple values)

我有一个域 Class Project 一对多 属性 users :

static hasMany = [users: User]

在我的脚手架代码中,视图是通过以下方式创建的:

<div class="fieldcontain ${hasErrors(bean: projectInstance, field: 'users', 'error')} ">
    <label for="users">
        <g:message code="project.users.label" default="Users" />        
    </label>
    <g:select name="users" from="${usermanagement.User.list()}" multiple="multiple" optionKey="id" size="5" value="${projectInstance?.users*.id}" class="many-to-many"/>
</div>

这会生成一个简单的列表,我可以在其中 select 多个用户。预计用户列表会很大,因此 selection 不太可行。 grails 中是否有一种简单的方法可以更轻松地做到这一点?我能想到的最佳解决方案是一个带有自动完成搜索表单的列表和一个显示 selected 条目的第二个列表。

我认为没有简单的方法可以做到这一点,我可能必须使用 javascript 或 jquery(自动完成等)

任何有助于改善我当前状态的帮助(selection from huge list via ctrl + click) 将不胜感激。

一个可能的解决方案是使用一些基于 javascript 的东西,比如 boostrap select2 or Kendo UI Multiselect。它们基于 html select 框,该框不引人注意地增强了 this html 元素的选择模型。所以没有真正的 javascript 代码可以实现,因为 html 表单的选择模型与禁用 javascript.

的选择模型相同

有一个名为 Chosen 的 jQuery 插件可以满足您的需求,它支持多选。我的一个应用程序中有一个与您的用例非常相似的用例,并且 Chosen 效果很好:

http://harvesthq.github.io/chosen/