Christian
Christian

Reputation: 904

Alternative for g:select (multiple values)

I have a Domain Class Project with a one-to-many property users :

static hasMany = [users: User]

In my scaffolding code the view is created with:

<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>

This results in a simple list where I can select multiple users. The user list is expected to be quite big so this selection isn't really viable. Is there a simple way in grails to do this a bit more comfortable? The best solution I can imagine would be a list with an autocomplete searchform and a second list where the selected entries are displayed.

I don't think that there is an easy way to do this and that I probably have to use javascript or jquery (autocomplete etc.)

Any help improving my current status (selection from huge list via ctrl + click) would be very appreciated.

Upvotes: 0

Views: 541

Answers (2)

Michael
Michael

Reputation: 2736

There is a jQuery plugin called Chosen that will do what you are wanting, it supports multiple selections. I have a use case much like yours in one of my apps and Chosen worked out great:

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

Upvotes: 3

Mario David
Mario David

Reputation: 1615

A possible solution is using some javascript based stuff like boostrap select2 or Kendo UI Multiselect. They are based on a html select box that unobtrusively enhanced the selection model of a this html element. So there is no real javascript code to implement, since the selection model for the html form stays the same as with disabled javascript.

Upvotes: 2

Related Questions