我遇到了一些麻烦,并且无法找到这个特定问题的答案。我有一个来自剑道的多选,当我提供了一个 ID 时,需要它来填充它的值。在视图中,我检查查询字符串中是否有 ID
$(function () {
if (visitationID != "") {
var visitationIDs = $.getJSON('/Visitation/GetVisitationTypesByID', { id: visitationID }, 'json');
$("#visitTypeMulti").data("kendoMultiSelect").value(visitationIDs);
}
});
以及我如何声明 multiSelect
<div id="visitTypeDiv">
<label>Visit Type: </label>
<input id="visitTypeMulti" />
</div>
var visitTypes = $("#visitTypeMulti").kendoMultiSelect({
placeholder: "Select a visitation type...",
dataTextField: "VisitationType",
dataValueField: "VisitationTypeID",
autoBind: false,
filter: "contains",
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: "/Visitation/GetVisitationTypes",
dataType: "json"
}
},
highlightFirst: true,
ignoreCase: true
});
最后是返回数组中的 visitID 的控制器代码。我正在使用现有查询,然后删除文本,因此它返回一个仅包含 ID(整数)的数组,我知道它们需要是字符串,因此我将它们强制转换为字符串数组。
public ActionResult GetVisitationTypesByID(int id)
{
VisitationDetailsModel model = new VisitationDetailsModel();
var rawData = model.RetrieveVisitationTypes(id);
//now gurantee I strip out the Airport visitation
string[] visitTypes = rawData.Select(x => x.VisitationTypeID.ToString()).ToArray();
return Json(visitTypes, JsonRequestBehavior.AllowGet);
}
当我设置值时,我看不到任何变化,但如果我将其更改为硬编码值$("#visitTypeMulti").data("kendoMultiSelect").value(["1","5"]);
,它就可以正常工作。此外,如果我在访问 ID 上尝试 JSON.Parse(),我会收到错误消息。我确实检查了 JSON 返回,它与硬编码示例 ["1","5"] 中的数据相同。我在做什么错/如何以 Kendo UI 将采用的方式格式化数据?提前致谢。