用于填充KendoUI Multiselect的MVC模型 - 预加载所选项目

时间:2014-05-21 18:58:03

标签: asp.net-mvc kendo-ui kendo-asp.net-mvc

我目前的多选项按照我想要的方式工作,但有一个例外。预加载以前选择的项目。

我的观点看起来:

<div class="editor-field">       
    @Html.LabelFor(model => model.UntaggedPersons)
    @Html.ListBoxFor(model => model.PeopleToTag, 
             new SelectList(Model.CommitteeMembers, "PersonId", "FullName"))                
</div>

JS:

$("#PeopleToTag").kendoMultiSelect({ "dataTextField": "FullName", "dataValueField": "PersonId", "placeholder": "Tag or Untag Persons to Action Item" });

PeopleToTag是一个IEnumerable <int> int,发布到控制器
委员会成员由人员First,Last,FullName和PersonId

组成

这很完美,我可以操纵谁在帖子中标记给控制器。

现在我想添加预选当前标记的功能。

如何添加预选值?我有一个模型:

model.TaggedPersons由人员First,Last,Fullname,PersonId组成。

如何连接javascript以显示model.TaggedPersons作为已选择的值?

如果更容易,我不介意使用MVC包装器方法。

我尝试过类似的事情:

<div class="editor-field">       
   @Html.LabelFor(model => model.TaggedPersons)
   @(Html.Kendo().MultiSelectFor(model => model.PeopleToTag)
     .Name("PeopleToTag")
     .Placeholder("These people are Tagged")
     .DataTextField("FullName")
     .DataValueField("PersonId")
     .BindTo(Model.CommitteeMembers)
     .Value(Model.TaggedPersons)          
    )
</div>

然而,目前这甚至不能为我提供一个剑道多选。这就是我想要如何处理它的一般想法。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

变化: DataTextField(“FullName”)到DataTextField(“Text”)

DataValueField(“PersonId”)到DataValueField(“Value”)

SelectList分别使用“Text”和“Value”。在创建选择列表时,您已使用FullName和PersonId填充了选择列表的字段。