метод, вызываемый для ячеек с математическими вычислениями, определяет способ отображения результата вычислений
Метод не предназначен для прямых вызовов.
Функция $mathTemplate принимает следующие параметры:
=A11Если вам нужно управлять тем, что возвращает ячейка при ссылке на неё (например, чекбокс должен возвращать своё состояние, а не HTML чекбокса), вы можете настроить $mathTemplate.
Например, если ячейка содержит кнопку, можно указать, что результатом математического вычисления в ней будет HTML кнопки:
const spreadsheet = webix.ui({view:"spreadsheet"});
spreadsheet.$$("cells").on_click["webix_button"] = function(ev, cell){
webix.message(`Button click in cell ${spreadsheet.posToRef(cell.row, cell.column)}`);
};
const defaultMathTemplate = spreadsheet.$mathTemplate;
spreadsheet.$mathTemplate = function(math, value){
let val = defaultMathTemplate.apply(this, arguments);
if(/^=button\(/i.test(math))
return "<input class='webix_button' type='button' value='click me!'>";
return val;
}
spreadsheet.registerMathMethod("BUTTON", ()=> "My button", null, true);
// если другая ячейка ссылается на текущую, она получит "My button"
spreadsheet.setCellValue(1, 1, "=BUTTON()");
// возвращает текст "My button" вместо HTML кнопки
spreadsheet.setCellValue(2, 1, "=A1");
В качестве альтернативы можно задать возвращаемое ячейкой значение напрямую в registerMathMethod() (без настройки $mathTemplate):
spreadsheet.registerMathMethod(
"BUTTON",
()=> "<input class='webix_button' type='button' value='click me!'>",
null,
true
);
Наверх