【问题标题】:Chosen MultiSelect not displaying the pre-selected values in the edit view选择的 MultiSelect 不在编辑视图中显示预选值
【发布时间】:2014-12-08 12:15:04
【问题描述】:
//MVC View    
<div class="control-group">
        @Html.LabelFor(x => x.users, new { @class = "control-label" })
    <div class="controls">
        @Html.ListBoxFor(x => x.SelectedUsers, Model.Users, new { @class = "chosen-select", multiple = "multiple" })
    </div>
</div>

<script type="text/javascript">
        $(".chosen-select").chosen();
        $(".chosen-select").trigger("chosen:updated");
        $(".chosen-select").trigger("liszt:updated");
        $(".chosen-select").chosen().change();
</script>

  //MVC Controller
            model.SelectedUsers = User.Where(x => x.ROLE == 2)
                                 .Select(x => new SelectListItem
                                 {
                                     Text = x.Name,
                                     Value = x.Id,
                                 }).ToList();
            model.Users =           User
                                    .Select(x => new SelectListItem
                                    {
                                        Text = x.Name,
                                        Value = Id,
                                    }).ToList();

我有 10 个用户和 3 个从控制器操作正确返回的 SelectedUsers。 创建功能正常工作,但在编辑时,我没有得到在所选 ListBox 控件中选择的 3 个预选用户。当我单击列表框时,它显示了所有 10 个用户。 我尝试使用来自http://harvesthq.github.io/chosen/ 的文档来实现这一点 我不确定这是否是在 mvc razor 视图中执行此操作的正确语法或方法。任何朝着正确方向的帮助都会非常有用,谢谢..

【问题讨论】:

  • 属性SelectedUsers必须是int[]而不是IEnumerable&lt;SelectListItem&gt;如果它包含与选项中的值匹配的值,它们将被选中。
  • 它按照您的建议工作。@StephenMuecke 您可以将其发布为答案吗。非常感谢您的关注。

标签: jquery asp.net-mvc asp.net-mvc-4 razor jquery-chosen


【解决方案1】:

属性SelectedUsers 必须是int[] (or IEnumerable&lt;int&gt;),而不是IEnumerable&lt;SelectListItem&gt;

如果它包含与选项中的值匹配的值,它们将被选中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多