#jquery #asp.net-mvc #kendo-ui #kendo-grid #kendo-asp.net-mvc
#jquery #asp.net-mvc #kendo-пользовательский интерфейс #kendo-grid #kendo-asp.net-mvc
Вопрос:
У меня есть требование, при котором мне нужно сохранить строку, которую можно повторить. Требование заключается в том, что я перетаскиваю значение из одной сетки в другую сетку. но когда я удаляю строку, она удаляет все одинаковые строки
Я использую функцию kendo remove
, например
rightGrid.dataSource.remove(sortElement);
если я перетаскиваю дублирующуюся строку, она удаляет все одинаковые строки, а не только одну.
Существует ли какая-либо функция, которая может удалить только эту конкретную строку.
Я также использовал removeRow
, но безуспешно.
Ответ №1:
Вы можете использовать функцию удаления сетки():
$("#grid").on("click", "button.remove", function() {
var $tr = $(this).closest("tr"),
grid = $("#grid").data("kendoGrid");
grid.removeRow($tr);
});
Или вы можете использовать функцию remove() источника данных:
$("#grid").on("click", "button.remove", function() {
var $tr = $(this).closest("tr"),
grid = $("#grid").data("kendoGrid"),
dataItem = grid.dataItem($tr);
grid.dataSource.remove(dataItem);
});
Вы также можете проверить демо от 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 amp;amp;
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);
}
}
}
Комментарии:
1. Я не хочу удалять дублирующиеся строки, это главная проблема. в вашей демонстрации при проверке обеих строк есть разница. данные-uid. В моем случае есть то же самое, потому что эта строка из другой сетки.