2 つの別々の Kendo UI グリッドを使用して、UI コントロール (前後の矢印など) を介してデータをやり取りすることはできますか?
パターンは、左側のマスター リストを取得し、アイテムを選択して、右側に洗練されたリストを表示することです。
2 つの別々の Kendo UI グリッドを使用して、UI コントロール (前後の矢印など) を介してデータをやり取りすることはできますか?
パターンは、左側のマスター リストを取得し、アイテムを選択して、右側に洗練されたリストを表示することです。
可能であり、それを行うのは難しくありませんが、自分で行う必要があるため、次のものが必要です。
Grid
とDataSource
それらが公開するイベントに関するある程度の知識。次のグリッド定義を使用できます。
var grid1 = $("#grid1").kendoGrid({
dataSource: ds1,
selectable: "multiple",
navigatable: true,
pageable: false,
columns: [
{ field: "name", title: "Name" },
{ field: "lastName", title: "Last Name" }
]
}).data("kendoGrid");
var grid2 = $("#grid2").kendoGrid({
dataSource: ds2,
selectable: "multiple",
navigatable: true,
pageable: false,
columns: [
{ field: "name", title: "Name" },
{ field: "lastName", title: "Last Name" }
]
}).data("kendoGrid");
2 つのボタンを定義します。
grid1
するgrid2
grid2
するgrid1
ボタンの定義は次のとおりです。
<div><a href="#" id="copySelectedToGrid2" class="k-button">></a></div>
<div><a href="#" id="copySelectedToGrid1" class="k-button"><</a></div>
そして、それを管理するための JavaScript:
$("#copySelectedToGrid2").on("click", function (idx, elem) {
moveTo(grid1, grid2);
});
$("#copySelectedToGrid1").on("click", function (idx, elem) {
moveTo(grid2, grid1);
});
最終的には次のmoveTo
ようになります。
function moveTo(from, to) {
var selected = from.select();
if (selected.length > 0) {
var items = [];
$.each(selected, function (idx, elem) {
items.push(from.dataItem(elem));
});
var fromDS = from.dataSource;
var toDS = to.dataSource;
$.each(items, function (idx, elem) {
toDS.add({ name: elem.name, lastName: elem.lastName });
fromDS.remove(elem);
});
toDS.sync();
fromDS.sync();
}
}
この例はこちら