2016-06-25 8 views
0

У меня возникла проблема с всплывающим окном подтверждения при удалении элемента. Когда я нажимаю кнопку «Удалить», появляется всплывающее окно больше, чем одно, и я не знаю, почему. И второй вопрос - как я могу изменить текст этого окна? Я попробовал этот код, но не работает:kendo grid delete - проблемы с окном подтверждения

columns: [ 
    ..., 
{command: [{name: "destroy", text: "Delete Item", click: deleteItem}], 
title: " ", width: "100px"} 
] 

и функцию для удаления:

function deleteItem(e) { 
    var item = this.dataItem($(e.currentTarget).closest("tr")); 
    if (confirm("delete item " + item.Name + " ?")) { 
     var grid = $("grid").data("kendoGrid"); 
     grid.dataSource.remove(item); 
     grid.dataSource.sync(); 
     grid.refresh(); 
    } 
} 

отредактирован: вторая проблема, которую я нашел, кнопка обновления нажмите после того, как некоторые элементы из сетки удаляются

ответ

0

Проверьте следующий образец и дайте мне знать, если это поможет:

http://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/Editing/custom-delete-confirmation-dialog

+0

Я забыл для div с идентификатором окна :) .. поэтому удаление работает, но я обнаружил проблемы с обновлением ... после нажатия кнопки обновления некоторые элементы удаляются из сетки или удаляются все элементы .. это случайный –

+0

мой код здесь https://jsfiddle.net/brg2eraq/ ... но не работает, потому что моя служба только локальная –

0

вероятно, вы должны попробовать использовать следующий код перед любой другой в обработчик удаления

e.preventDefault() 

Это предотвратит выполнение окна по умолчанию и будет обеспечивать пространство для подтверждения на popup.Thus, что позволяет только одно окно в перед вами Я надеюсь, что это поможет

+0

Если возможно, пожалуйста, уточните свой вопрос, обновив еще какой-нибудь код или создав JsFiddle? – patilprashant6792

+0

привет, удаление элементов, которые я исправляю с отсутствующим div для окна ... но можете ли вы помочь мне со вторыми проблемами? После нажатия кнопки «Обновить» удаляются один или несколько элементов из сетки –

+0

мой код здесь https://jsfiddle.net/brg2eraq/ ... но не работает, потому что моя служба только локальная –

0

Повторное подтверждение связано с тем, что вы связываете свою команду с именем «destroy», которое является built-in command, предоставленным сеткой. Команда запускается, показывая встроенное подтверждение, а затем показывая ваше подтверждение. Если вы хотите, чтобы обрабатывать метод уничтожить себя просто переименовать команду на что-то другое, чем «уничтожить», который является уникальным для вас, так что событие команды по умолчанию не срабатывает:

{command: [{name: "delete", text: "Delete Item", click: deleteItem}], title: " ", width: "100px"} 

Похоже, у Вас есть несколько других проблем в вашей функции deleteItem. Попробуйте следующие вместо:

function deleteItem(e) { 
    var item = this.dataItem($(e.target).closest("tr")); 
    if (confirm("delete item " + item.Name + " ?")) { 
     var grid = $("#grid").data("kendoGrid"); 
     grid.dataSource.remove(item); 
     grid.dataSource.sync(); 
     grid.refresh(); 
    } 
} 

Обратите внимание, я изменил код, чтобы использовать e.target, а не e.currentTarget, а также редактировали селектор JQuery искать #grid вместо сетка Предполагая, что вы запрашиваете идентификатор, а не класс.

См. this snippet для рабочего примера, аналогичного тому, что вы пытаетесь сделать.

+0

нормально, я исправляю код и пытаюсь отлаживать в браузере , но я нашел эту ошибку https://ctrlv.cz/shots/2016/06/28/Zytu.png Возможно, это причина, почему у меня проблемы с окном ... у вас есть идея, почему не удалось инициализировать элемент? –