私はいくつかの問題に遭遇し、この特定の問題に対する答えを見つけることができませんでした. 剣道からの複数選択があり、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 が取得できるようにデータをフォーマットするにはどうすればよいですか? 前もって感謝します。