on 2015 Mar 24 9:34 PM
hello everyone,
I'm trying to enhance cell colors depending on the content of the cell.
I'm consuming oData service from SAP backend.
this is the table:
var oTable = new sap.ui.table.Table({
id: "OverviewTable",
width : "100%",
rowHeight : 20,
title : "",
});
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({text : "Группа компаний""}),
template : new sap.ui.commons.TextView().bindProperty("text","SENDER_NUM"),
sortProperty : "SENDER_NUM",
filterProperty : "SENDER_NUM",
}));
oTable.bindRows("/DASHBOARDSet");
return oTable;
So, I'm passing values to table by .bindRows(); and field values: SENDER_NUM
The thing is that I'm trying to change cell color depending what value the SENDER_NUM has.
Where can I fetch the results?
As onInit, onBeforeRendering, and even after return.oTable there are no values yet in the table.
Where can I fetch the filled in value in the table?
Thank you.
Request clarification before answering.
the correct answer is mentioned in this post:
template: new sap.ui.commons.TextView().bindProperty("text", "amount", function(cellValue) {
// remove styles else it will overwrite
this.removeStyleClass('green');
this.removeStyleClass('yellow');
this.removeStyleClass('red');
// Set style Conditionally
if (cellValue >= 1500) {
this.addStyleClass('green');
} else if(cellValue < 1500 && cellValue > 1000) {
this.addStyleClass('yellow');
} else{
this.addStyleClass('red');
}
return cellValue;
}),
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Alex,
I would define a delegate on a control
var gruppaCompaniyControl = new sap.ui.commons.TextView().bindProperty("text","SENDER_NUM");
gruppaCompaniyControl.addDelegate({
onAfterRendering: function () {
var _value = this.getText();
if(_value==="Клёвая комания")
{
this.addStyleClass("cool");
}
}}, false, gruppaCompaniyControl, true);
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({text : "Группа компаний""}),
template : gruppaCompaniyControl,
sortProperty : "SENDER_NUM",
filterProperty : "SENDER_NUM",
}));
define your own CSS:
.cool {
background-color: #ffdbdb;
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Maksim, great help from you!
But it works 50% only.
I still can't get the value of field
On this step IF is not working:
var P8_template = new sap.ui.commons.TextView().bindProperty("text","P8_TOTAL");
P8_template.addDelegate({
onAfterRendering: function () {
var _value = this.getText();
if(_value == "Name1") {
this.addStyleClass("cool");
}
}}, false, P8_template, true);
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({text : "Status"}),
template: P8_template,
sortProperty : "P8_TOTAL",
filterProperty : "P8_TOTAL",
this.getText returns "", so the comparison can't be done.
P.S. I'm using oData for fetching the values.
Any Ideas?
Thank you.
hmmm.... for Json it works just fine
do you see the value from P8_total in the table or it is also blank?
User | Count |
---|---|
59 | |
8 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.