<table> @foreach (var u in Model) { <tr> <td>@u.UserName</td> <td>@Html.DropDownList("SL")</td> <td><a href="javascript:void(0)">保存</a> <a href="javascript:void(0)">删除</a></td> </tr> } </table>
后端代码
UserProfileService usp = new UserProfileService(); List<UserProfile> users = usp.GetAll(); RoleService rs=new RoleService(); List<Role> roles=rs.GetAll(); SelectList sl = new SelectList(roles, "RoleId", "RoleName"); ViewBag.SL = sl; return View(users);
效果
我的需求是前端动态生成的dropdownlist分别进行初始化。
所有不能在后端selectlist写死,需要在前端赋值。
前端该怎么写,我dropdownlist和dropdownlistfor重载都没有初始化选项。
我只想问一局你是想设置什么初始化的值,Html.DropDownList是什么,一个扩展方法,原型为:
public static string DropDownList(this HtmlHelper htmlHelper, string name)
{
IEnumerable<SelectListItem> selectData = htmlHelper.GetSelectData(name);
return htmlHelper.SelectInternal(null, name, selectData, true, false, null);
}
不管你后台写死的Selected=true,还是前端用js给他赋初始值(其实它就是一个下拉框),你总要知道你该给它怎么设置初始化值吧
谢谢
静态扩展方法,我明天试试
初始值就是RoleId,但是我在dropdownlist没看到赋值参数。
我想静态扩张方法应该能解决我的问题。
SelectList sl = new SelectList(roles, "RoleId", "RoleName");
有这样一个重载:public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)。第四个参数指定选中值
我是要在前端 html那边自动生成很多下拉框,然后分别初始化。