cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can change your system assigned username to something more personal in your community settings. X

iterate dynamic infotable/column values in for loop

sabharees
13-Aquamarine

iterate dynamic infotable/column values in for loop

I am creating one generic service to return the infotable values as HTML codes in the format of string output.

 

But unable to fetch the column values dynamically, 

for ex: my column names are stored in the array as ['col1', 'col2'], etc... If I pass these values in for loop(row.array[0]) to iterate the column values, the service returns undefined for the values.

 

code: 

 

const table = me.testTable; // columns: count, name 
let fieldNameArr = [];

function createMainTable() {
var fields = table.dataShape.fields;
for (let fieldName in fields) {
fieldNameArr.push(fieldName);
}
var cols = table.getFieldCount();
var rows = table.rows.length;
var drawTable = '<table>';
for (var i = 0; i < rows; i++) {
let row = table.rows[i];
drawTable += '<tr>';
for (var j = 0; j < cols; j++) {
let fieldName = fieldNameArr[j];
columnValue = row.fieldName;
drawTable += '<td>' + columnValue + '</td>';
}
drawTable += '</tr>';
}
drawTable += '</table>';
return drawTable;
}

result = createMainTable();

// output/result

<table><tr><td>undefined</td><td>undefined</td></tr><tr><td>undefined</td><td>undefined</td></tr><tr><td>undefined</td><td>undefined</td></tr></table>

 

1 ACCEPTED SOLUTION

Accepted Solutions
nmutter
14-Alexandrite
(To:sabharees)

you need to use

 

columnValue = row[fieldName];

 

as "fieldName" is a variable which it should evaluate. Currently, it will try to get the column named "fieldName" when you access it via row.fieldName - which is "undefined".

 

View solution in original post

2 REPLIES 2
nmutter
14-Alexandrite
(To:sabharees)

you need to use

 

columnValue = row[fieldName];

 

as "fieldName" is a variable which it should evaluate. Currently, it will try to get the column named "fieldName" when you access it via row.fieldName - which is "undefined".

 

sabharees
13-Aquamarine
(To:nmutter)

Thanks for this.

Top Tags