Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

How split text and fill a dynamic table columns with the values inside the text?

Avatar

Level 1

I have a text that is a combination of values separated with commas "," and I want to split it and fill some column inside a table with those values.

I tried this code in the indexChange event of the table row:

var raw = this.EXTKD.rawValue.split(',');
this.EXTKD.rawValue = raw[this.index];

knowing that EXTKD is the name of the cell that I want to fill with the value, and it is intially filled with the whole text that I want to split.

when I try the above code only the first row gets filled.

1 Reply

Avatar

Level 10

Ok, given your table has a repeatable row named "Row", you can use the following script in the calculate event of the table (not the row).

var oRows = this.resolveNodes("Row[*]"), // create a nodelist of the table rows
	aValues = [""], // array of values
	oRow, // reference object
	i; // counting variable

// If the table has at least one row
if (oRows.length > 0) {
	// Check every row
	for (i = 0; i < oRows.length; i += 1) {
		oRow = oRows.item(i); // set the current row ans reference object
		// if it is the first row, copy the data
		if (i === 0) {
			// check if the data field is empty. If not, create an array of from its value
			aValues = oRow.isNull ? aValues : oRow.EXTKD.rawValue.split(",");
		}
		// Set the data field value of the current row, exept there are more rows than entries in the array
		oRow.EXTKD.rawValue = i < aValues.length ? aValues[i] : oRow.EXTKD.rawValue;
	}
}