我目前的多选项按照我想要的方式工作,但有一个例外。预加载以前选择的项目。
我的观点看起来:
<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>
然而,目前这甚至不能为我提供一个剑道多选。这就是我想要如何处理它的一般想法。
非常感谢任何帮助!
答案 0 :(得分:0)
变化: DataTextField(“FullName”)到DataTextField(“Text”)
DataValueField(“PersonId”)到DataValueField(“Value”)
SelectList分别使用“Text”和“Value”。在创建选择列表时,您已使用FullName和PersonId填充了选择列表的字段。