我遇到了一些麻煩,並沒有能夠找到這個特定問題的答案。我有一個來自kendo的多重選擇,當我有一個ID提供時,需要它來填充它的值。在視圖中我檢查,如果我有在查詢字符串在Kendo UI multiselect中設置值
$(function() {
if (visitationID != "") {
var visitationIDs = $.getJSON('/Visitation/GetVisitationTypesByID', { id: visitationID }, 'json');
$("#visitTypeMulti").data("kendoMultiSelect").value(visitationIDs);
}
});
ID和如何我聲明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
});
並且最後返回該visitIDs在陣列控制器的代碼。我正在使用一個現有的查詢,然後刪除文本,所以它返回一個只有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);
}
當我設置的值我看不出有什麼變化,但如果我把它改爲硬編碼值它工作得很好。另外,如果我在訪問ID上嘗試使用JSON.Parse(),則會出現錯誤。我沒有檢查JSON返回,它是硬編碼示例[「1」,「5」]中的相同數據。我在做什麼錯了/我如何格式化Kendo UI要採用的方式?提前致謝。