This is a bit of different scenario but this may help you understand complete solution.
Let’s take a problem statement and try to solve.
Problem Statement:
I have a table with three columns, Like –
When I select ‘No’ from the Selection column the other two cells of that row should be disabled and if I select ‘Yes’, cells should be editable.
Solution:
First we need to know the index of the Selection radio button –
// Get the row index of checked radio button
var index = me.ui.getIndex();
Then, we need to get the Coach View instance for the “Name” and “Value” cells of that row –
// sampleList1, name1 and value1 are the control ids of the table, name textbox and value textbox respectively
var nameView = page.ui.get('/sampleList1/name1['+index+']');
var valueView = page.ui.get('/sampleList1/value1['+index+']');
Next, we need to get the selected value of the radio button for that row –
me.getData()
Finally, to achieve the requirement, we need to combine the above piece of codes and add a logic to set the visibility of the textboxes based on the selected value of the radio button –
// Get current row index
var index = me.ui.getIndex();
// Get Coach View instance of the name and value textbox
var nameView = page.ui.get('/sampleList1/name1['+index+']');
var valueView = page.ui.get('/sampleList1/value1['+index+']');
// Set the visibility of the textboxes based on the selected value of the radio button
if(me.getData() == "Y"){
nameView.context.options._metadata.visibility.set('value', "DEFAULT");
valueView.context.options._metadata.visibility.set('value', "DEFAULT");
} else {
valueView.context.options._metadata.visibility.set('value', "READONLY");
nameView.context.options._metadata.visibility.set('value', "READONLY");
}