我有一個相當複雜的自定義控件,可以在任何給定的XPage上多次使用。在控件中,我創建了幾個viewScope變量,這些變量必須對特定的自定義控件唯一。我想要做一些像viewScope.put(customControlID +「variableName」,「Stuff) 但我不知道如何獲得自定義控件ID獲取自定義控件的ID
3
A
回答
11
您可以獲得當前的自定義控件ID this.getId()
在<xp:view>
水平
如果你把這個ID到的CompositeData變量(例如compositeData.id
),那麼你可以使用該ID的自定義控制無處不在,你想裏面
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
beforePageLoad="#{javascript:compositeData.id = this.getId()}" >
用法在SSJS:。
viewScope.put(compositeData.id + "variableName","Stuff")
通常,標識被命名爲喜歡 「_id2」, 「_id8」,...
1
這裏是另一種解決方案作爲SSJS功能:
function getCCId(cmp:javax.faces.component.UIComponent):string{
try{
if(typeof(cmp) === 'com.ibm.xsp.component.UIIncludeComposite'){
return cmp.getId();
}
return getCCId(cmp.getParent())
}catch(e){}
}
功能爬上組件樹,直到它找到父CC,然後返回該ID。
您可以使用它f.e.在這樣的標籤:
<xp:label id="label1">
<xp:this.value><![CDATA[#{javascript:getCCId(this)}]]></xp:this.value>
</xp:label>
3
您可以使用的DataContext變量:
<xp:this.dataContexts>
<xp:dataContext
value="#{javascript:this.getId()}"
var="id">
</xp:dataContext>
</xp:this.dataContexts>
變量然後訪問作爲ID在SSJS ...
<xp:label id="label1" value="#{javascript:id}" />
...或在EL中:
<xp:label id="label1" value="#{id}" />
+0
這也是一個非常方便的解決方案。 –
相關問題
- 1. 從自定義控件獲取值
- 2. C#獲取自定義控件中的控件事件
- 3. 從自定義控件中的ScriptResourceMapping定義中獲取ScriptReference
- 4. 獲取選定的文本asp.net自定義服務器控件
- 5. 通過ID訪問自定義控件子控件
- 6. 在自定義Web控件中獲取子組件值
- 7. 用戶控件自定義事件,並獲取屬性
- 8. 自定義控件
- 9. 自定義控件自定義方法?
- 10. Wpf:獲取自定義控件的包含HwndSource
- 11. 獲取自定義控件的表單座標
- 12. 從asp.net中的自定義用戶控件獲取價值
- 13. 從哪裏獲取Winforms .NET的自定義控件?
- 14. 渲染ASP.NET中的自定義控件自定義控件派生自控制
- 15. ASP.net Web窗體自定義控件自動更改下一個控件的ID
- 16. jQuery/Magento - 獲取選定的div ID和顯示自定義值
- 17. jQuery的獲取自定義事件
- 18. VueJS:獲取自定義組件的innerHTML
- 19. ASP.NET自定義控件取消呈現
- 20. 獲取文件上傳控件的ID
- 21. StatusStip控件中的自定義控件
- 22. WPF自定義控件 - 你如何測試自定義控件?
- 23. aspnet自定義控件在自定義控件中丟失viewstate
- 24. 獲取自定義的AuthenticationProvider
- 25. 綁定自定義控件
- 26. 自定義ID
- 27. 公開在另一個自定義控件的控件模板中定義的自定義控件事件
- 28. 自定義控制器找不到ID
- 29. Codeigniter:從自定義庫中獲取自定義配置文件?
- 30. 從<select>獲取自定義html屬性控件與JQuery
這是一個相當聰明的方法,Knut。 –
聰明!表示讚許,滿意,勝利! –