DataTable - это редактируемый компонент, т.е. пользователь может редактировать значения таблицы вручную.
Как правило, чтобы позволить пользователю редактировать значения таблицы, достаточно задать true параметру editable.
Сделать таблицу редактируемой
webix.ui({
view: "datatable",
editable:true,
autoConfig:true // editor:"text" будет добавлен для каждой ячейки
});
Related sample: Basic Use of Editors
После чего вы можете:
В Webix есть 12 редакторов:
Чтобы добавить редактор для столбца, задайте атрибут editor параметра columns:
Указание редактора для столбца
columns: [
{ id:"title", header:"Film title", editor:"text" }
]
Related sample: Basic Use of Editors
Чтобы создать свой редактор, используйте следующие методы:
webix.editors = {
"myeditor": {
focus: function () {/* ... */},
getValue: function () {/* ... */},
setValue: function (value) {/* ... */},
render: function () {/* ... */}
}
};
Внутренние свойства описанных методов:
После того как ваш редактор попал в коллекцию, вы можете установить его для столбца:
Добавление нового редактора и установка его для столбца
webix.ui({
view: "datatable",
columns: [
{ id: "title", header: "Film title", editor: "myeditor" }
]
});
Подробнее о пользовательских редакторах.
Чтобы задать действие вызывающее редактор, используйте свойство editaction.
По умолчанию редактор открывается по клику. Чтобы переопределить это действие на двойной клик, установите значение dblclick свойству editaction:
Открыть редактор двойным кликом
webix.ui({
view: "datatable",
editable: true,
editaction: "dblclick"
});
Если вы хотите задать свое действие для открытия редактора, вам нужно полностью определить логику работы редактора (от начала до конца редактирования).
Открытие редактора по нажатию на кнопку:
1. Установите 'custom' для editaction.
2. Используйте миксин UIManager (метод addHotKey), чтобы добавить горячую клавишу и ее обработчик.
Открыть редактор нажатием на Enter
var mytable = webix.ui({
view: "datatable",
editable: true,
editaction: "custom"
});
webix.UIManager.addHotKey("enter", function(view){
var pos = view.getSelectedId();
view.edit(pos);
}, mytable);
Related sample: Basic Use of Editors
Открыть редактор определенным действием (события таблицы):
1. Установите 'custom' для editaction.
2. Обработайте событие (вы можете сделать это с помощью параметра on или метода the attachEvent).
Открыть редактор выделением ячейки
webix.ui({
view: "datatable",
editable:true,
editaction: "custom",
select: "cell",
on:{
onAfterSelect: function (data,prevent) {
this.editCell(data.row, data.column);
}
}
});
Чтобы открыть все редакторы в указанной строке/столбце, сделайте следующее:
Открыть редактор для всех ячеек строки/столбца
// редактирование всей строки
var table1 = webix.ui({
view: "datatable",
editable: true,
editaction: "custom",
on: {
onItemClick: function (id) {
this.editRow(id);
}
}
});
// редактирование всего столбца
var table2 = webix.ui({
view:"datatable",
editable: true,
editaction: "custom",
on: {
onItemClick: function(id){
this.editColumn(id);
}
}
});
Related sample: Opening Multiple Editors
Кроме редактирования строк и столбцов вы можете:
Компоненты Webix могут быть связаны друг с другом для синхронного изменения их данных. Например, вы можете связать форму и таблицу, что позволит редактировать данные таблицы в форме:
var form = $$("form1");
form.bind("datatable1");
//...после того как пользователь отредактировал данные
form.save();
Related sample: Editors. Bind Form
Обратите внимание, что атрибут name полей формы должен совпадать с ID столбцов таблицы.
Подробнее о связывании компонентов.
По умолчанию клавиша Tab (сочетание Tab+Shift)* позволяют переключаться между редакторами таблицы.
Как это работает:
Related sample: Tab Navigation and Scrolling
Related sample: Opening Multiple Editors
Проверить свои знания по ссылке.
Наверх