1

我有一个嵌入了按钮的重复。重复在面板中。当用户单击按钮时,该按钮应隐藏/显示(我部分刷新面板)。重复与 Domino 视图相关联,我看到该视图中的其他值在重复中得到更新,因此,这似乎不是视图索引问题(我在代码中刷新了视图索引。)

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

谢谢,霍华德

4

4 回答 4

1

我想你在寻找

getComponent("<id>").setRendered(true / false);
于 2012-04-27T07:58:18.287 回答
1

Hi For Repeat 控件的输入是用来让我们头疼的。因为通过SSJS处理入口,我们可以获取值并设置值。但是渲染部分,重复组件的 id 对所有人都是一样的。因此,如果我们尝试将 reder 设为 false。它隐藏了我们所有的重复组件。

尝试使用以下内容。,[把这个放在按钮onclick中,看看下面的值]

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"

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

请看帖子,你可能会得到更好的主意

于 2012-05-07T09:28:12.673 回答
0

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

于 2012-05-07T15:38:04.917 回答
0

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

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

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

于 2012-04-27T20:53:14.417 回答