Обработка событий в DataTable

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

Есть два способа задать обработчик событию:

  • с помощью метода attachEvent();
  • с помощью параметра onr.

Имена событий не чувствительны к регистру

Метод attachEvent()

Вы можете задать несколько обработчиков одному событию:

Общий способ задать/удалить обработчик события

// обработать событие
var myEvent = $$("dataTableId").attachEvent("onItemClick", function(){
  // код обработчика
});

Этот обработчик события не удаляется вместе с компонентом. Его необходимо удалить с помощью метода detachEvent():

// удалить обработчик события
$$("dataTableId").detachEvent(myEvent);

Параметр 'on'

С помощью параметра on вы можете задать обработчик события во время инициализации компонента. Эти обработчики нельзя удалить вручную, они удаляются автоматически вместе с компонентом.

Задать обработчик события с помощью 'on'

webix.ui({
    view: "dataTable",
    ...
    on: {
        onItemClick(){
            alert("item has just been clicked");
        }
    }
);

Отменяемые события

Все события с префиксом 'onBefore' можно использовать для отмены соответствующего действия, если из обработчика вернуть false:

Отмена клика по вкладке

var myEvent = $$("dataTableId").attachEvent("onBeforeTabClick", function(){
    ... // код обработчика
    return false;
});

Доступные объекты и данные

Если обработчик - это простая функция, this указывает на владельца события (компонент, который вызвал attachEvent() или содержит параметр on).

Большинство обработчиков получают входящий аргумент (или несколько). Например, событие onAfterSelect передает id строки таблицы (полный список передаваемых аргументов вы найдете [тут](ui.datatable to find all)).

Ссылка внутри обработчика события

$$("myTable").attachEvent("onafterselect", function(id) {
    // получает имя поля выбранного элемента данных
    var name = this.getItem(id).name;
    $$("top_label").setValue(name)
});
Наверх
If you have not checked yet, be sure to visit site of our main product Webix javascript ui components library and page of javascript datagrid library product.