Как получить данные из пользовательского свойства, который находится в группе на пользовательском управлении на XPage?
-
26-10-2019 - |
Вопрос
Я работаю над пользовательским управлением, который обладает пользовательскими свойствами.
Если я хочу использовать значение свойства, это очень просто. Для значения свойства «maptype» я могу использовать Compositedata.maptype, но как мне сделать эти группы остроумия?
Например, у меня есть Goup под названием «Маркер», и их может быть множество. Каждый маркер имеет пять свойств: «адрес», «заголовок», «слой», «Infotext» и «Icon». Как получить доступ, например, значение заголовка на третьем маркере?
Решение
Группа свойств интерпретируется как com.ibm.xsp.binding.propertymap Java Class. Многочисленные экземпляры интерпретируются как класс java.lang.arraylist. Зная это, я бы попробовал
compositeData.Marker[2].address
Для простого привязки данных. Или же
compositeData.Marker.get(2).get('address')
Для доступа через Pure JavaScript.
Другие советы
Есть много способов использовать его. Это просто коллекция со свойствами, которые вы можете использовать. Одним из способов может быть использование его внутри повторного управления. Это пример, как вы можете его использовать:
<xp:repeat id="repeat1" rows="30"
value="#{javascript:compositeData.Marker}"
var="rowMarker">
<xp:label id="lbladdress"
value="#javascript:rowMarker.address}">
</xp:label>
<xp:label id="lbltitle"
value="#javascript:rowMarker.title}">
</xp:label>
</xp:repeat>
Если вы хотите цикл, вы можете просто использовать: для (Marker in compositedate.marker) {marker.title; }