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
|
|