我有一个具有一对多属性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>
这会产生一个简单的列表,我可以选择多个用户。用户列表预计会非常大,因此这种选择并不可行。有没有一种简单的方法在grails中做到这一点更舒服?我能想象的最佳解决方案是一个带有自动完成搜索表单的列表和一个显示所选条目的第二个列表。
我不认为有一种简单的方法可以做到这一点,我可能不得不使用javascript或jquery(自动完成等)。
帮助改善我的当前状态(通过ctrl + click
从巨大的列表中选择)
非常感谢。
答案 0 :(得分:3)
有一个名为Chosen的jQuery插件可以满足您的需求,它支持多种选择。在我的一个应用程序中,我有一个与你的用例非常相似的用例,而选择得很好:
答案 1 :(得分:2)
可能的解决方案是使用一些基于javascript的内容,例如boostrap select2或Kendo UI Multiselect。它们基于一个html select
框,它不引人注意地增强了这个html元素的选择模型。所以没有真正的javascript代码可以实现,因为html表单的选择模型与禁用的javascript保持一致。