【发布时间】:2015-09-03 14:09:34
【问题描述】:
我在 xp:repeat 控件中有一个 xp:button 控件。我想计算按钮的 styleClass 属性,所以我通过将“活动”添加到 styleClass 来确定我点击了哪个。
不幸的是,当我在 viewScope 变量中设置活动 ID(所选按钮的 ID)并将其与它们区分的 styleClass 中计算的 ID 进行比较时。
不同之处在于 viewScope 中 ID 的值似乎包含一个额外的迭代器值,例如
查看:_id1:_id81:repeat2:0:button2 或 查看:_id1:_id81:repeat2:1:button2
样式类中的计算值不是例如
查看:_id1:_id81:repeat2:button2
最后一个 ID 值对于所有其他按钮都是相同的。
用于计算我使用的 ID 值:
getComponent("button2").getClientId(facesContext)
正如 Tim Tripcony Getting the clientId of an XPages button programmatically 所说的
我做错了什么或者如何在 SSJS 中正确计算 styleClass 属性?
【问题讨论】:
-
请添加计算 ID 和计算 styleClass 的完整源代码,特别是在何时何地触发。更改与时间有关,并且组件树仅包含一组用于重复的控件,这些控件在运行时迭代。
-
var myID:String = getComponent("button2").getClientId(facesContext); var activeID:String = sessionScope.get("btnSubRActive"); if (activeID == myID){ return "btn btn-responsive btn-marginb active"; } else{ return "btn btn-responsive btn-marginb not-active"; }
-
为什么不使用服务器生成的ID(“button2”)?每次部分刷新或任何刷新(Xpages 上的每次更改)都可以为所有控件生成新的客户端 ID。
标签: xpages xpages-ssjs