ExtJS как написать условие для рендера?
Здравствуйте!
На сайте с minishop2 weight переименован в Цена покупки. Он используется менеджерами по закупу, чтобы указывать новые цены на товары на рынке.
Так вот в orders.grid.js weight сейчас выводится так:
Если weight > cost, то metadata.style = 'color: red;';
иначе metadata.style = 'color: green;';
Заранее спасибо
На сайте с minishop2 weight переименован в Цена покупки. Он используется менеджерами по закупу, чтобы указывать новые цены на товары на рынке.
Так вот в orders.grid.js weight сейчас выводится так:
weight: {width: 50, renderer: function (value, metadata) {metadata.style = 'color: green;'; return value;}},
Вопрос: есть ли возможность написать условие, которые выполняет следующее:Если weight > cost, то metadata.style = 'color: red;';
иначе metadata.style = 'color: green;';
Заранее спасибо
Комментарии: 7
В моих компонентах я вижу что renderer это функция с такими параметрами:
function(val, cell, row)
попробуйте добавить 3й параметр и посмотреть в отладчике, в row должна быть строка с данными со всеми полями объекта.
эх, скажу честно и с сожалением, что единственное, что я могу сделать — это добавить 3ий параметр… наведите дальше пожалуйста. Добавлю параметр 3ий, сохраню новый orders.grid.js, вернусь в заказы в админке в minishop2 верно? Дальше в консоли что-то писать?
Я думаю @Наумов Алексей имел в виду что-то вроде этого
function(val, cell, row){
console.log(row);
}
А потом f12 и смотреть консоль браузера. weight: {width: 50, renderer: function (value, metadata, row) {
debugger;
metadata.style = 'color: green;'; return value;
}},
и да, f12, обновляем страницу и смотрим, что у нас в row, есть ли нужные данные weight: {width: 50, renderer: function (value, metadata, row) {
var w = parseFloat(row.data.weight.replace(/\s/g, ''));
var c = parseFloat(row.data.cost.replace(/\s/g, ''));
if (w > c) {
metadata.style = 'color: green;'; return value;
}
}},
parseFloat и replace чтобы пробелы убрать и преобразовать в число, т.к. данные приходят строками, а не числами
вы лучший просто! спасибо большое за помощь!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.