내가 최근에 탐색 한 몇 가지 옵션이 있습니다.
당신이 순수 자바 스크립트 버전 http://www.javascriptkit.com/script/script2/picklist.shtml
을 시도 할 수 있습니다 또는 당신이 http://jsfiddle.net/stokedout/aySLN/4/
(function ($) {
$.fn.twinList = function (options) {
var settings = $.extend({
// Styling
containerClass: 'twl-container',
btnContainerClass: 'twl-btn-container',
leftListClass: 'twl-list left',
rightListClass: 'twl-list right',
selectBtnClass: 'twl-btn select',
selectAllBtnClass: 'twl-btn select-all',
deselectBtnClass: 'twl-btn deselect',
deselectAllBtnClass: 'twl-btn deselect-all',
// Content
selectBtnText: '>',
selectAllBtnText: '>>',
deselectBtnText: '<',
deselectAllBtnText: '<<',
// Config
debug:true
}, options);
return this.each(function() {
var originalList = $(this),
originalOptions = originalList.find('option'),
container,
btnContainer,
leftList,
rightList,
select,
selectAll,
deselect,
deselectAll;
var updateOriginalInput = function() {
var rlOptions = rightList.find('option');
originalOptions.prop('selected', false);
for (var i = 0; i < originalOptions.length; i++) {
for (var j = 0; j < rlOptions.length; j++) {
if (originalOptions[i].value === rlOptions[j].value) {
originalOptions[i].selected = true;
}
}
}
}
container = $('<div/>', {
'class': settings.containerClass
});
leftList = $('<select/>', {
'class': settings.leftListClass,
multiple: true
});
rightList = $('<select/>', {
'class': settings.rightListClass,
multiple: true
});
btnContainer = $('<div/>', {
'class': settings.btnContainerClass
});
select = $('<a>', {
text: settings.selectBtnText,
'class': settings.selectBtnClass,
href: '#',
click: function (e) {
leftList.find('option:selected').appendTo(rightList);
updateOriginalInput();
}
});
selectAll = $('<a>', {
text: settings.selectAllBtnText,
'class': settings.selectAllBtnClass,
href: '#',
click: function (e) {
leftList.find('option').appendTo(rightList);
originalOptions.prop('selected', true);
}
});
deselect = $('<a>', {
text: settings.deselectBtnText,
'class': settings.deselectBtnClass,
href: '#',
click: function (e) {
rightList.find('option:selected').appendTo(leftList);
updateOriginalInput();
}
});
deselectAll = $('<a>', {
text: settings.deselectAllBtnText,
'class': settings.deselectAllBtnClass,
href: '#',
click: function (e) {
rightList.find('option').appendTo(leftList);
originalOptions.prop('selected', false);
}
});
leftList.append(originalOptions.clone());
btnContainer.append(select)
.append(selectAll)
.append(deselect)
.append(deselectAll);
container.append(leftList)
.append(btnContainer)
.append(rightList);
container.insertAfter(originalList);
if (!settings.debug)
originalList.hide();
});
};
})(jQuery);
$('#someList').twinList();
당신이 단지를 결합 할 필요가 시작하려면 시작 지점으로 사용할 수있는 jQuery 플러그인을 구축하기 시작 @ 일부 데이터가있는 Html.DropDownListFor().
제출 한 기사에서 나에게 통찰력을주었습니다. 내가 찾던 답변은 실제로 기사 관련 리소스 안에있었습니다. "jQuery를 사용한 다중 선택 전송"http://blog.jeremymartin.name/2008/02/easy-multi-select-transfer-with-jquery.html 8 줄의 자바 스크립트 코드와 드롭 다운 목록. 간단하고 효율적입니다! 고맙습니다! – JayMF
앞으로 방문객을 위해이 클라이언트 측 솔루션을이 링크에 제공된 서버 양면 코드와 결합하여 컨트롤러와 바인딩합니다. http://stackoverflow.com/questions/4759493/asp-net-mvc-dropdownlist-data-binding. – JayMF