сохранить дубликат строки в сетке кендо - PullRequest
0 голосов
/ 13 марта 2019

У меня есть требование, где мне нужно сохранить ряд, который можно повторить. Требование: я перетаскиваю значение из одной сетки в другую. но когда я удаляю строку, она удаляет все строки, которые совпадают

Я использую функцию кендо remove, например,

rightGrid.dataSource.remove(sortElement);

Если я перетаскиваю дублированную строку, она удаляет все те же строки, но не одну.

Есть ли какая-либо функция, которая может удалить только эту конкретную строку.

Я также использовал removeRow, но не повезло.

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете использовать Grid's removeRow ():

$("#grid").on("click", "button.remove", function() {
    var $tr = $(this).closest("tr"),
        grid = $("#grid").data("kendoGrid");

    grid.removeRow($tr);
});

Или Вы можете использовать DataSource's remove ():

$("#grid").on("click", "button.remove", function() {
    var $tr = $(this).closest("tr"),
        grid = $("#grid").data("kendoGrid"),
        dataItem = grid.dataItem($tr);

    grid.dataSource.remove(dataItem);
});

Вы также можете проверить demo от telerik

Чтобы удалить дубликаты, вы можете использовать следующие

function onSave(e){
var currentProductName = e.model.ProductName;
var currentProductID = e.model.ProductID;
var data = this.dataSource.data();
for(item in data){
if(data[item].ProductName == currentProductName &&
data[item].ProductID != currentProductID){
e.preventDefault();
alert("Duplicates found");
// here you can delete your Duplicates
// you had to pass ur UID to 'getByUid' function
// var dataRow = $('#grid').data("kendoGrid").dataSource.getByUid(uid);
// $('#grid').data("kendoGrid").dataSource.remove(dataRow);
}

}
}
...