2014-10-30 3 views
1

У меня есть некоторые страницы, на которых у меня есть сетка кендо ui (подключена к полным сервисам CRUD), но используйте отдельный элемент управления панелью Kendo UI (в отличие от настройка панели инструментов в самой сетке). У меня есть несколько различных кнопок/меню на панели инструментов, но я вижу странное поведение при вызове saveChanges() в сетке. Если ячейку редактируют при нажатии кнопки сохранения, сетка сохраняется, но отредактированное значение теряется (оно возвращается обратно туда, где оно было). Следующие данные, которые я вижу в разных ситуациях:Панель инструментов и сетка Kendo UI - странное поведение при запуске из панели управления панели управления

  1. При использовании кнопки сохранения, заданной в сетке (команда: «сохранить»), любые изменения в редактируемой ячейке фиксируются с сохранением.
  2. При использовании простой кнопки html, которая вызывает метод saveChanges() сетки, любые изменения в редактируемой ячейке фиксируются с сохранением.
  3. При использовании кнопки сохранения, настроенной в элементе управления панели, изменения в редактируемой ячейке LOST вызывают при вызове saveChanges().

Следующая jsbin показывает поведение всех трех:

http://jsbin.com/jazobexatu/2/edit?html,js,output

Я попытался призывая сохранить с помощью кнопки на панели инструментов ряд различных способов (даже пытается инициировать событие щелчком внешняя кнопка), но ничто, кажется, не исправляет поведение. Я также попытался вызвать closeCell() в сетке (чтобы попытаться вернуть значение обратно в данные, но это тоже не работает). Я не смог отладить javascript, чтобы понять, что другое. Я надеюсь, что кто-то с более глубоким пониманием этих средств контроля может помочь мне.

ответ

0

По какой-то причине событие мыши на кнопке панели инструментов не вызывает размытия в редакторе.

Вы можете попробовать это самостоятельно, нажав в ячейку, чтобы изменить его, затем нажмите и удерживайте кнопку мыши на «обычной» кнопке. Редактор закрывается на мышь вниз, вызывая размытие редактора и сохраняет изменения.

Если вы делаете то же самое, нажмите и удерживайте нажатой клавишу мыши, на панели инструментов редактор остается открытым.

Я прорывался через источник, но не понял, почему это происходит. Мое лучшее предположение заключалось бы в том, что обработчик mousedown на панели инструментов препятствует тому, чтобы событие кипело или выполняло действие по умолчанию, и редактор не размывается.


Дополнительной деталь: На MouseDown на кнопке заголовка сетки и кнопках нормальных, сфокусированный элемент изменяется (что вызывает редактор размытость). Но на мульдауне кнопки панели инструментов элемент ввода редактора все еще имеет фокус.

Смещение фокуса на мышь панели инструментов может быть обходным путем.


Сорт странных рубить, но это работает в Chrome (любой должны в любом браузере, который поддерживает activeElement

click: function (e) { 
    $(document.activeElement).blur(); 
    $("#grid").data("kendoGrid").saveChanges(); 
} 
+0

Потрясающего Я искал именно такой хак. - просто не знает, как чтобы это произошло сам. Спасибо! –

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