• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 406
  • Last Modified:

Clicking on list box opens control to allow adding to list

I am developing an asp.net application where there are several listboxes I need users to make selections in.   I would like it so that when the user clicks on the box (or perhaps a button beside the box) a pop up allows the user to add and remove items as follows.

Here is the list box in its normal state:

List box Normal
When the user licks into the box the following pops up allowing for changes:

Listbox selection control
Clicking off this control will return the user to the page and the target listbox control will reflect the changes.

I have seen this in action but can't find one to give as an example.
0
canuckconsulting
Asked:
canuckconsulting
  • 2
  • 2
1 Solution
 
lenamtlCommented:
Hi, maybe you can use Drag and Drop feature

There is a jQuery for this
http://jqueryui.com/sortable/#connect-lists

It is also possible with HTML5
http://farhadi.ir/projects/html5sortable/

Both are easy to implement
0
 
canuckconsultingAuthor Commented:
Thanks but not quite what I'm after.  

The page it is on is very busy so I'm trying to conserve space.  I need the listbox  to kind of expand out to include a selection box when it is clicked.  This way the space is used when it is needed but once the selection is made only the selected items are shown.
0
 
leakim971PluritechnicianCommented:
Test page : http://jsfiddle.net/L9VhF/

    <select id="listbox" multiple="multiple">
        <option>red</option>
        <option>green</option>
        <option>blue</option>
        <option>pink</option>
    </select>

<div id="dialog">
    <select id="a" multiple="multiple">
    </select>
    <table>
        <tr><td><button id="pop">>></button></td></tr>
        <tr><td><button id="push"><<</button></td></tr>
    </table>
    <select id="b" multiple="multiple">
        <option>red</option>
        <option>green</option>
        <option>blue</option>
        <option>pink</option>
    </select>
</div>

Open in new window


jQuery(function($) {
    $("#listbox").click(function(evt) {
        evt.preventDefault();
        $("option", this).each(function() {
            var text = $(this).text();
            $("#a").append($(this).clone());
            $("option", "#b").filter(function() { return $(this).text() == text; }).remove();
        });
        $("#dialog").dialog("open");
    });
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        width:250,
        height:200,
        resizable: false,
        draggable: false,
        close: function(event, ui) {
            $("#listbox").empty();
            $("option", "#a").each(function() {
                $(this).clone().appendTo("#listbox");
            });
            $("option", "#a").appendTo("#b");
        }
    });
    $("#pop").click(function() {
        $("option:selected", "#a").appendTo("#b");
    });
    $("#push").click(function() {
        $("option:selected", "#b").appendTo("#a");
    });
});

Open in new window

0
 
canuckconsultingAuthor Commented:
worked perfectly...thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now