2017-09-14 65 views
0

我想计算一个局部刷新目标ID的ID。这可能吗?计算部分刷新ID?

我正在使用可重用组件(自定义控件),并希望通过属性定义指定目标ID,而不是对其进行硬编码。

回答

1

你的意思是这样的吗?

代码CustomControl

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

    <xp:button value="Label" id="button1"> 
     <xp:eventHandler event="onclick" submit="true" 
      refreshMode="partial" refreshId="#{compositeData.refreshId}"> 
     </xp:eventHandler> 
    </xp:button> 

</xp:view> 

代码的XPage

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 

    <xp:label 
     value="#{javascript:java.lang.System.currentTimeMillis()}" 
     id="label1" /> 

    <xc:CC refreshId="#{label1}" /> 

</xp:view> 

CC的自定义属性是一个名为refreshId

+0

它不应该是'字符串'? –

+0

@FrantisekKossuth:我想如果你只是使用* label1 *,它将不起作用,因为那么clientID不会被计算。很明显,我通常会使用*#{id:label1} *,但是看起来如果你将一个组件绑定到一个字符串clientID被自动导出... –

+0

确实很有趣。如果组件的toString实现返回其clientID,则有意义。似乎很奇怪。在我看来,你不需要clientID - eventHandler的属性refreshID需要服务器端组件的名称。 –