2013-03-21 6 views
0

У меня есть сетка KendoUI. В ней один из столбцов имеет пользовательскую команду, определенную:Пользовательская команда сетки KendoUI запускается несколько раз

command: { text: "Add", click: addLine } 

Эта сетка отображается в окне кэндо, когда пользователь нажимает на кнопку. Эта же кнопка возвращает сетку и сначала очищает HTML-код:

$("#kendoGridQuick").html(""); 
$("#kendoGridQuick").kendoGrid({ 

После того, как сетка будет создана, откроется окно. Моя проблема в том, что эта команда запускается точно, но много раз я показывал это окно и создал сетку. Так что он отлично работает в первый раз, но получает вызов дважды во второй раз и три раза в третий раз и т. Д.

ответ

3

Проблема в том, что вы не уничтожаете объект Grid. Перед очисткой HTML вы должны вызвать метод Grid.destroy.

var grid = $("#kendoGridQuick").data("kendoGrid"); 
// detach events 
grid.destroy(); 

Кроме того, попробуйте сохранить закрытие и открытие CPU и памяти, но не уничтожить сетку. Поскольку вы всегда используете одну и ту же базовую структуру, вы можете повторно привязать/перечитать новые данные, когда окно вот-вот откроется (намного быстрее и проще).

2

Вместо того, чтобы тратить процессор на создание и уничтожение сетки. Инициализируйте сетку только один раз, когда страница загружена и просто отобразит/спрячет окно при нажатии кнопки (вам не нужно повторно инициализировать его).

Если вы все еще сталкиваетесь с трудностями, поделитесь некоторым кодом, чтобы мы могли видеть, где и как вы инициализируете сетку.

-1

Это сетка кендо. Однако мы можем обработать ниже, чтобы очистить сетку до того, как будут выставлены данные о ставках.

$ ("# gridSaleEvent"). Html ("");

+0

Я уже сделал это для ОП. И на это ответили полтора года назад. – Paul

Смежные вопросы