我在MVC4 Razor视图中使用twitter bootstrap-multiselect下拉列表
@Html.DropDownListFor(m => m.States, Model.States, new { @class = "form-control", id = "ddlState", placeholder = "Select State" })
我将它用作单个选择下拉列表,即没有多个'属性
$('#ddlState').multiselect({
enableFiltering: true,
nonSelectedText: 'Select State',
enableCaseInsensitiveFiltering: true,
maxHeight: 200
});
我使用SelectListItem
填充上面的下拉列表
通过以下方式。
public List<SelectListItem> BindStates()
{
DataSet ds = new DataSet();
ds = (DataSet)Session["SDMVTMasterDropDownData"];
List<SelectListItem> states = new List<SelectListItem>();
states = (from DataRow dr in ds.Tables[0].Rows
select new SelectListItem()
{
Text = (dr["StateName"]).ToString(),
Value = dr["StateId"].ToString(),
Selected = (bool)dr["SelectedStatus"],
}).ToList();
return states;
}
这是我上面列表的数据集
StateId StateName SelectedStatus
1 ANDHRA PRADESH 1
2 BIHAR 0
3 CHANDIGARH 0
但问题是即使我将Selected
属性设置为true,下拉列表也不会选择相应的列表项。
而是默认选择列表中的第一项。
在浏览互联网时,我发现使用属性selected='selected'
可以用来设置所选的选项。
像这样,
<script type="text/javascript">
$('#example-single-selected').multiselect();
</script>
<select id="example-single-selected">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3" selected="selected">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
<option value="6">Option 6</option>
</select>
但这是静态方式,如何在从控制器填充列表时实现这一点?
以下是此bootstrap-multiselect下拉列表http://davidstutz.github.io/bootstrap-multiselect/#configuration-options-multiple的参考文档的链接