첫 번째 옵션에 대한 내 코드는 다음과 같습니다. 더 나은 해결책을 찾으면 알려주세요!
HTML/면도기 :
<div class="row">
<div class="span12">
<div class="control-group">
<label for="AddBusinessUnit" class="control-label">@Strings.BusinessUnit</label>
<div class="controls">
<div class="input-append">
<input type="text" class="span2" size="16" id="AddBusinessUnit" />
<button class="btn" type="button" id="add-business-unit">@Strings.Add</button>
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
@Html.ListBoxFor(model => model.BusinessUnits, SelectLists.BusinessUnits(Model.BusinessUnits, false), new { Multiple = "multiple" })<br/>
<a href="#" id="delete-business-unit">@Strings.DeleteSelectedElement</a>
</div>
</div>
</div>
</div>
<div class="form-actions">
<input type="submit" class="btn btn-primary" value="@Strings.Save" />
<a href="@Url.Action(MVC.Company.Index())" class="btn">@Strings.Cancel</a>
</div>
JS :
<script type="text/javascript">
$(document).ready(function() {
$('#add-business-unit').click(function (e) {
var bu = $('#AddBusinessUnit').val();
if (bu != '') {
$('#BusinessUnits').append($('<option></option>').val(bu).html(bu));
$('#AddBusinessUnit').val('');
}
e.preventDefault();
});
$('#delete-business-unit').click(function (e) {
$('#BusinessUnits :selected').remove();
e.preventDefault();
});
$('input[type="submit"]').click(function() {
$('#BusinessUnits option').attr('selected', 'selected');
});
});
selectList의가 :
public static class SelectLists
{
public static IList<SelectListItem> BusinessUnits(IList<string> bussinessUnits, bool addEmpty, string selected = "")
{
var list = new List<SelectListItem>();
if(addEmpty) list.Add(new SelectListItem());
list.AddRange(bussinessUnits.Select(businessUnit => new SelectListItem {Selected = selected == businessUnit, Text = businessUnit, Value = businessUnit}));
return list;
}
}
그것은 내 모델에서 내 재산 public virtual IList<string> BusinessUnits { get; set; }
에 바인딩됩니다.
희망이 도움이 될 수 있습니다!
여기에서 뭔가를 발견했습니다. 어쩌면 도움이 될 것입니다 : http://codes.codedigest.com/codedigest/90-how-to-add--remove-listitems-from-one-listbox-to-another-using-jquery-.aspx –
고마워요.하지만 알아요. 그것을하는 방법, 나는 이미 다른 프로젝트에서 그것을하고 있습니다. 단지 제가 프로젝트에서 자주하는 일에 "꽤"알지 못한다는 것을 알았습니다. 나는 더 나은 해결책을 찾을 수 있다고 가르쳤습니다. – VinnyG
아직 작성하지 않았다면 knockoutjs 목록 바인딩 예제와 코드를 살펴보십시오. 당신이 select multiple에 바인딩 할 때,! multiple, ol, ul 또는 심지어 div 스택을 선택하면 클라이언트 코드가 "더 예쁘다"IMO가됩니다. – danludwig