首页新闻找找看学习计划

mvc4中dropdownlist设置初始值

0
悬赏园豆:20 [已解决问题] 解决于 2015-11-02 17:01
<table>
    @foreach (var u in Model)
{ 
        <tr>
            <td>@u.UserName</td>
            <td>@Html.DropDownList("SL")</td>
        
            <td><a href="javascript:void(0)">保存</a>&nbsp<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重载都没有初始化选项。

nbu_djw的主页 nbu_djw | 初学一级 | 园豆:48
提问于:2015-10-26 17:22
< >
分享
最佳答案
0

我只想问一局你是想设置什么初始化的值,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给他赋初始值(其实它就是一个下拉框),你总要知道你该给它怎么设置初始化值吧

收获园豆:10
稳稳的河 | 老鸟四级 |园豆:4183 | 2015-10-26 17:43

谢谢

静态扩展方法,我明天试试

初始值就是RoleId,但是我在dropdownlist没看到赋值参数。

 

我想静态扩张方法应该能解决我的问题。

nbu_djw | 园豆:48 (初学一级) | 2015-10-26 20:21
其他回答(1)
0

SelectList sl = new SelectList(roles, "RoleId", "RoleName");

有这样一个重载:public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)。第四个参数指定选中值

收获园豆:10
jello chen | 园豆:7091 (大侠五级) | 2015-10-26 22:18

我是要在前端 html那边自动生成很多下拉框,然后分别初始化。

支持(0) 反对(0) nbu_djw | 园豆:48 (初学一级) | 2015-10-27 09:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册