2013-12-10 47 views
0

請讓我知道如何在所選多選下拉列表中設置所選值。我已經嘗試了所有可用的網絡,但沒有任何工作。多選所選下拉列表 - 想要設置值

我的看法是現在

@Html.DropDownListFor(
    model => model.SelectedSkills, 
    new SelectList(
     Model.SkillList, 
     "Value", 
     "Text", 
     Model.SelectedSkills 
    ), 
    new { 
     @class = "chosen", 
     id = "ddlSkill", 
     name="ddlPersonSkill", 
     @tabindex = "4", 
     multiple = "true" 
    } 
) 

@Html.HiddenFor(
    model => model.SelectedSkills, 
    new { id = "hdnPersonSkill" } 
) 

在頁面加載我需要顯示所選值:

var personskill = $("#hdnPersonSkill").val(); 
$('#ddlSkill option:nth-child(3)').attr('selected', 'selected'); 
$('#ddlSkill').trigger('liszt:updated'); 

但上面的代碼是不工作

+0

「多選下拉列表」 ??對於多選,你需要使用ListBoxFor而不是DropDownListFor –

回答

0

CHHTML:

@Html.ListBoxFor(
     model => model.SelectedSkills, 
     new SelectList(
     Model.SkillList, 
     "Value", 
     "Text", 
     Model.SelectedSkills 
     ), 
     new 
     { 
      @class = "chosen", 
      id = "ddlSkill", 
      name = "ddlPersonSkill", 
      @tabindex = "4", 
      multiple = "true" 
     } 
     ) 

Javascript以顯示所有選擇的:例如

$(document).ready(function() { 
     var conceptName = $('#ddlSkill').find(":selected").text(); 
     alert(conceptName); 
    }); 

模型僅僅指剛:

public string[] SelectedSkills { get; set; } 
    public IEnumerable<SelectListItem> SkillList { get; set; } 

    public MyModel() 
    { 
     SkillList = new List<SelectListItem>(); 
     ((List<SelectListItem>)SkillList).Add(new SelectListItem { Text = "Skill 1", Value = "1" }); 
     ((List<SelectListItem>)SkillList).Add(new SelectListItem { Text = "Skill 2", Value = "2" }); 
     ((List<SelectListItem>)SkillList).Add(new SelectListItem { Text = "Skill 3", Value = "3" }); 
     ((List<SelectListItem>)SkillList).Add(new SelectListItem { Text = "Skill 4", Value = "4" }); 

     SelectedSkills = new string[3]; 
     SelectedSkills[0] = "1"; 
     SelectedSkills[1] = "2"; 
     SelectedSkills[2] = "3"; 
    }