刷新面板重复后,重复按钮不会隐藏/显示?

时间:2012-04-26 21:10:10

标签: xpages

我有一个重复,其中嵌入了按钮。重复是在一个小组中。当用户单击按钮时,该按钮应隐藏/显示(我部分刷新面板)。重复绑定到Domino视图,我看到我在该视图中的其他值在重复中得到更新,因此,它看起来不像是视图索引问题(我在代码中刷新了视图索引。)

如果我在我的按钮onclick代码中使用context.reloadPage(),那么按钮将隐藏/显示它们应该,但是,这似乎我正在使用大锤!有关如何在呈现包含重复的面板时让按钮重新计算可见属性的任何建议?另一个奇怪的事情是每当我刷新保存重复的面板时,可见属性会被计算三次。

谢谢,霍华德

4 个答案:

答案 0 :(得分:1)

我认为你正在寻找

getComponent("<id>").setRendered(true / false);

答案 1 :(得分:1)

嗨For Repeat控件的输入用于让我们的头脑变得困难。因为通过SSJS处理条目,我们可以获取值并设置值。但渲染部分,重复组件的id对所有人来说都是相同的。因此,如果我们试图将reder视为错误。它隐藏了我们所有的重复组件。

尝试使用以下内容。,[将此按钮点击,点击下面的值]

var entryValue= getComponent("repeat1").getChildren().get(0).getValue()

getComponent("inputText1").setValue(entryValue)

但在客户端,我们可以轻松处理。因为DOM对象的id对于所有重复组件都是唯一的。

var id1="view:_id1:repeat2:"+'2'+":button1"
document.getElementById(id1).style.display="none"

这将隐藏重复控制组件的第三个条目。

Please see the post, You may get better idea

答案 2 :(得分:0)

找到解决方案。我的原始解决方案是从重复行获取值(使用集合对象,它是一个viewentrycollection并使用getColumnValues)来计算按钮的呈现属性。

相反,我创建了一个viewScope变量(一个Vector),它保存按钮的状态(要显示的按钮组)。这将填充在页面的beforePageLoad事件中。

按钮onclick代码在执行其处理后更新此viewScope变量。现在一切都很好。我想这是JSF生命周期中的一些东西,使按钮无法正确更新。使用viewScope变量可以正常工作。

答案 3 :(得分:0)

除了Ramkumar所说的内容之外,您还可以使用重复控件中的索引变量来识别重复控件中的每个事件。如果你使用firefox中的元素进行检查,你会得到更多的想法[你可能需要firebug]。通常,重复控件本身内提到的字段可以视为数组