Xpages 如果添加到DataView,则操作按钮的工作方式不同

Xpages 如果添加到DataView,则操作按钮的工作方式不同,xpages,dataview,view-scope,Xpages,Dataview,View Scope,我有一个按钮,它调用一个对话框,该对话框有一个绑定到sessionScope变量的组合框。组合框包含一个表单名列表,我使用它调用XPage来创建新文档。表单列表中的第一个值是,因此用户需要选择一个值。我有一个带有onClick事件的按钮: var c = getComponent("CreateDocDialog"); sessionScope.put("ssSelectedForm","") c.show(); 我有一个带有repeatControl的customControl上的按钮和对话

我有一个按钮,它调用一个对话框,该对话框有一个绑定到sessionScope变量的组合框。组合框包含一个表单名列表,我使用它调用XPage来创建新文档。表单列表中的第一个值是,因此用户需要选择一个值。我有一个带有onClick事件的按钮:

var c = getComponent("CreateDocDialog");
sessionScope.put("ssSelectedForm","")
c.show();
我有一个带有repeatControl的customControl上的按钮和对话框,当单击打开对话框的按钮时,ssSelectedForm为空,组合的当前值为空,这正是我想要的。但是,如果将相同的按钮和对话框添加到带有dataView控件的customControl,则会显示对话框,但ssSelectedForm不为空,因此组合框会显示ssSelected的最后一个值。我已经将按钮放在dataView的外部,在dataView的几个方面,但都有相同的结果

非常混乱。

比尔

我将回答与我的评论相同的问题,因为我对我所说的很有信心

继续并将范围从sessionScope更改为viewScope。我曾经遇到过类似的问题,我在使用sessionScope变量后通过清除它来“修复”它。这是可行的,但我意识到这是没有必要的,通过更改为viewScope,生命周期将更短,并且在我使用它时不需要清除值


我不知道当添加到数据视图时为什么会失败,但如果这能修复它,那就很重要了

对于组合框,我将使用viewScope变量而不是sessionScope。这是一个简单的更改,试试看是否可以得到更好的结果。我认为这确实需要是一个会话范围变量,因为使用此sessionScope变量我调用了另一个XPage,并在dynamicContent控件中使用该变量来显示特定的面板。在这一点上,我相信我有一个新的观点。当我开始开发这个过程时,我开始使用viewScope,但它失去了焦点。这是几个月前的事了,所以我可能错了,伟大的记忆只是不太长。我想我能做的是将其绑定到视图范围,然后在对话框上的“我的操作”按钮中将视图范围复制到sessionScope。是的,您在问题中没有说明组合框是如何绑定的,但我始终会将其绑定到viewScope,然后如您所说,将其分配给sessionScope变量。这应该可以在不造成意外后果的情况下解决此问题。Steve-将组合绑定到名为vsNewForm的viewScope,然后在退出sessionScope的过程中。PutsSelectedForm、viewScope.getvsNewForm,它现在可以在dataView自定义控件中工作,也可以在带有repeatControl的cc中工作。我不明白的是为什么?我讨厌做这样的事,除了因为之外,我不知道为什么正如爱丽丝所说,好奇者和好奇者。根据定义,sessionScope变量在当前登录中的任何时候都可用-Sooo?????我很高兴它解决了您的问题,而没有实际检查您的肩膀。我想我无法推测原因,但我完全理解您的沮丧。我发现,通常组合框的最佳绑定是viewScope,使用sessionScope在页面之间传送内容,就像您所做的那样。如果我的回答能帮助你解决你的具体问题,我会感激你接受我的回答。我可以想象,如果给所有的代码一个理由是可以找到的,但我敢猜测,最重要的事情是绕过手头的问题。如果你和我一样,那就谈谈下一个问题: