1、MultiSelectList多选问题。
在控制器中生成MultiSelectList,如:
|
1 |
var m = container.FlowNode.Where(f => f.FlowNode_ID == ID).FirstOrDefault();<br>List<FormDataItemMapping> listFDIM =m.FlowTable.FormTemplate.FormDataItemMapping.ToList();<br>ViewBag.userTablesSL=new
MultiSelectList(listFDIM, "FormDataItemMapping_ID", "FormDataItemMapping_Title", m.FormDataItemMapping.ToList()); |
在前台进行绑定,如:
|
1 |
@Html.ListBox("usertable2222", (MultiSelectList)ViewBag.userTablesSL) |
前台无法进行多选,查了很多资料都没有查看原因。最后只得自己封装方法生成IEnumerable<SelectListItem>对象,在前台绑定。
|
1 |
@Html.ListBox("usertable2222", (IEnumerable<SelectListItem>)ViewBag.userTablesSL) |
2、MultiSelectList多选int型会出现无法多选的情况。
|
1
2
3
4
5
6
7
8
9
10 |
后台:<br>var
a1 = new
List<int>(); a1.Add(1); a1.Add(2); a1.Add(3); ViewBag.a1 = a1; var
a2 = new
List<int>(); a2.Add(2); a2.Add(3); ViewBag.a2 = a2; ViewBag.ssss= new
MultiSelectList(a1,a1);<br><br>前台:<br> @Html.ListBox("xxx", (MultiSelectList)(ViewBag.ssss))<br> 此种情况,无select未多选,若上面的a1是string类型,则就没有问题<br> @Html.ListBox("aaa", new
MultiSelectList((List<SelectListItem>)ViewBag.s1, (List<string>)ViewBag.s1))<br> |
3、前台HtmlHepler标签与后台的ViewBag中的值有重复的,会出现select无法多选的问题。
|
1 |
后台:<br> ViewBag.flowNodesSL = GenerateMutiSelectList(m.FlowTable.FlowNode.ToList(), "FlowNode_ID", "FlowNode_Name", m.FlowNode1.ToList());<br>前台:<br>@Html.ListBox("flowNodesSL", (IEnumerable<SelectListItem>)ViewBag.flowNodesSL) select未多选<br>@Html.ListBox("flowNodesSL222", (IEnumerable<SelectListItem>)ViewBag.flowNodesSL) |
|
1 |
|
原文:http://www.cnblogs.com/zhang1597116/p/MVC.html