Posted: 5 Dec 2019 7:18 EST Last activity: 6 Dec 2019 3:30 EST
Unable to use multiselect in table grid
I have a page list property, let's call it A. And property A has a page list property called B. Also property B has a page list property called C. I have a table that sourced from A. When user click edit button in table grid a pop up is displayed and user add/deletes property B. This pop up also includes a table that sourced from B. I would like to add a multiselect control in a column of B's table and let user modify C property. But I get this error on tracer;
pyWorkPage.A(1).B(2).C was of mode Page List while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getStringValue() was expecting String mode
A > B > C
I am using property C for multiselect control and a data page (list) for source. What am I missing here ?
The repeating grid and the modal popup render in the non-template mode. Multi-select list control only supports the template mode.
The multi-select control works only with the template UI. A table with the 'Optimize Code' option unchecked, renders in the non-template mode. However, when the 'Optimize Code' option is enabled, the table changes to the 'Read Only' mode and allows the user to customize it. However, it does not provide the option to Add or Delete item. Hence, the multi-select control is not supported or does not work with the non-template table.
As a workaround use the Repeating Dynamic Layout (RDL) instead of a table.
If you are using multiselect control in modal dialog or table layout it is not supported as per below explanation:
Below is the difference in rendering between templatized and non-templatized control:
Templatized control renders on client side. On screen load the metadata is send by the server later on the specific content is getting load. In non-template control, the whole data is getting loaded on the server side and the result is shown on the screen.
In the multiselectcontrol on the grid the section that is getting loaded is non-template and the multiselect control is templatized control. On screen load, the section getting loads the whole script with data whereas the multiselect control loads only the metadata and on second refresh it loads the data related to that previously loaded metadata.
This is the reason why the template control is not getting loaded in the non-template section.
Advanced parameter sections are rendering as non-template causing new controls like multiselect not to render.