¿Cómo obtener los datos de una propiedad personalizada que está en un grupo con un control personalizado en una XPAGE?
-
26-10-2019 - |
Pregunta
Estoy trabajando en un control personalizado que tiene propiedades personalizadas.
Si quiero usar el valor de una propiedad, es muy fácil. Para el valor de la propiedad "maptype" puedo usar compositedata.maptype, pero ¿cómo hago este ingenio grupos?
Por ejemplo, tengo un grupo llamado "marcador" y puede haber múltiples de ellos. Cada marcador tiene cinco propiedades: "Dirección", "Título", "Capa", "Infotext" e "Icono". ¿Cómo accedo, por ejemplo, el valor del título en el tercer marcador?
Solución
El grupo de propiedades se interpreta como com.ibm.xsp.binding.propertymap java clase. Las múltiples instancias se interpretan como Java.Lang.ArrayList Class. Sabiendo esto lo intentaría
compositeData.Marker[2].address
para enlace de datos simple. O
compositeData.Marker.get(2).get('address')
para acceder a través de JavaScript puro.
Otros consejos
Hay muchas formas de usarlo. Es solo una colección con propiedades que puede iterar. Una forma podría ser usarlo dentro de un control repetido. Este es un ejemplo de cómo podría usarlo:
<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>
Si desea recorrer, puede usar: para (marcador en compositedate.marker) {marker.title; }