您的位置:首页 > 其它

MVC3的问题

2014-02-17 19:34 267 查看
1、MultiSelectList多选问题。

在控制器中生成MultiSelectList,如:

var m = container.FlowNode.Where(f => f.FlowNode_ID == ID).FirstOrDefault();
List<FormDataItemMapping> listFDIM =m.FlowTable.FormTemplate.FormDataItemMapping.ToList();
ViewBag.userTablesSL=new MultiSelectList(listFDIM, "FormDataItemMapping_ID", "FormDataItemMapping_Title", m.FormDataItemMapping.ToList());


在前台进行绑定,如:

@Html.ListBox("usertable2222", (MultiSelectList)ViewBag.userTablesSL)


前台无法进行多选,查了很多资料都没有查看原因。最后只得自己封装方法生成IEnumerable<SelectListItem>对象,在前台绑定。

@Html.ListBox("usertable2222", (IEnumerable<SelectListItem>)ViewBag.userTablesSL)


2、MultiSelectList多选int型会出现无法多选的情况。

后台:
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);

前台:
@Html.ListBox("xxx", (MultiSelectList)(ViewBag.ssss))
此种情况,无select未多选,若上面的a1是string类型,则就没有问题
@Html.ListBox("aaa", new MultiSelectList((List<SelectListItem>)ViewBag.s1, (List<string>)ViewBag.s1))


3、前台HtmlHepler标签与后台的ViewBag或ViewData的名称、实体名有重复的,很可能出现select无法多选的问题。

后台:
List<UserTable> usertablessss1 = (from ao in container.UserTable select ao).ToList();
ViewBag.usertablessss = GenerateMutiSelectList(usertablessss1, "UserTable_ID", "UserTable_Name", m.UserTable.ToList());
ViewData["usertablessss2"] = GenerateMutiSelectList(usertablessss1, "UserTable_ID", "UserTable_Name", m.UserTable.ToList());
前台:    @Html.ListBox("usertablessss4", (IEnumerable<SelectListItem>)ViewBag.usertablessss)
@Html.ListBox("usertablessss3", (IEnumerable<SelectListItem>)ViewData["usertablessss2"]
@Html.ListBox("usertablessss1", (IEnumerable<SelectListItem>)ViewData["usertablessss2"])
@Html.ListBox("usertablessss2", (IEnumerable<SelectListItem>)ViewData["usertablessss2"]) 此种情况下就会出现无法多选的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: