Как получить доступ к свойству enabled элементов, присутствующих в строке списка в appmaker? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть список, в котором listRow содержит панель внутри.Затем внутри панели есть 3 текстовых поля.Я хочу отключить эти 3 текстовых поля с помощью кода, но проблема в том, что я не могу получить доступ к свойству enabled этих 3 текстовых полей.

Я попробовал следующее безрезультатно:

var x=app.currentPage.descendants.FileList.descendants._values;

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Согласно документации List Widget , таблица свойств объясняет:

потомки - все дочерние элементы этого виджета макета рекурсивно идентифицируются по их именам. Это исключает любые повторяющиеся дочерние элементы, такие как строки в списке, ячейки в сетке, аккордеон и их содержимое.

Следовательно, использование потомков определенно НЕ даст вам то, что вы хотите. Кроме того, это также объясняет:

children - Прямые дочерние элементы этого виджета Layout, идентифицируемые по их именам.

Здесь не указывается, что он будет исключать повторяющиеся дочерние элементы, и, поскольку каждый элемент строки в списке является повторяющимся дочерним, то этот параметр нам необходимо использовать.

Теперь, вызов дочерних элементов даст нам PropertyMap , поэтому нам нужно перебирать каждый элемент, вызывая значения PropertyMap. Так что вам нужно сделать это:

var rows = app.currentPage.descendants.FileList.children._values;
rows.forEach(function(row){
    var rPanel = row.descendants.[PanelWidgetName];
    var panelDescs = rPanel.descendants.
    panelDescs.forEach(function(desc){
        desc.enabled = true; //false
    });
});
0 голосов
/ 23 мая 2019

Я бы попробовал следующий код:

var listRow = app.currentPage.descendants.FileList.children._values;
for (var i in listRow) {
  var inputs = listRow[i].YourPanelName.children._values;
  for (var j in inputs) {
    inputs[j].enabled = false;
  }
}

По сути, сначала вы должны получить доступ к дочерним элементам виджета Список, которые являются строками списка, затем для каждой строки списка вы можете ссылаться на панель внутри каждой строки.просто вызывая имя панели и затем вызывая дочерние элементы внутри этой панели, которые являются вашими входами.Вот почему это требует вложенного цикла.Я не проверял это, но оно должно работать.

...