Xpages @Dblookup无法在服务器上工作
我写了一个xpages。Xpages @Dblookup无法在服务器上工作
detail:有两个组合框A,B。我使用组合框A上的@Dbcolumn从notesview中获取选项数据,我将抛出从A中获得的选择以获取B的第二个数据。
问题是:它在我的localserver上运行良好,但在服务器。
我会很感激任何建议,谢谢你!
代码是在服务器端如下:
var fd_AppChoice:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("fd_AppChoice");
var [email protected](fd_AppChoice.getValue());
var temp=new Array();
[email protected]("","(A)",AppChoice,2);
return temp;
代码不看的权利 - 你没有服务器。定义一个变量并不能修复它的数据类型,所以var temp=new Array();
是无关紧要的。我也宁愿将fd_AppChoice绑定到一个范围变量,例如viewScope.appChoice
,那么你的代码变得更容易。试试这个:
var appChoice = @Trim(viewScope.appChoice); // Use getComponent.getValue if you have to
var server = @DbName();
// if different server or nsf have = ["myserver","mydb.nsf"] or [@DbName()[0],"my.nsf"]
var result = @DbLookup(server,"(A)",appChoice,2);
return result || ["Sorry nothing here"]
这应该工作
我不能完全证实了这一点:在我的情况下,它就像一个魅力我的测试服务器上(甚至没有尝试在本地)。这是我的代码:
组合框#1从相同的数据库的分类视图读取其值:
<xp:comboBox id="comboBox1" value="#{viewScope.combo1}">
<xp:selectItems>
<xp:this.value>
<![CDATA[#{javascript:@DbColumn(@DbName(), "myView", 1);}]]>
</xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="panelC2">
</xp:eventHandler>
</xp:comboBox>
观察该组合的onchange事件执行面板上的部分更新其是用于组合框#容器2(这可能是你的情况下,这是缺少?)
为了解决这个问题,下面是其余部分:组合#2使用@DbLookup获取它的值数组,它被组合#1中选择的值过滤,现在它存储在一个viewScope变量中(我怎么能不同意Stephan在这里:使用scope-var变得更容易!):
<xp:panel id="panelC2">
<xp:comboBox id="comboBox2" value="#{viewScope.combo2}">
<xp:selectItems>
<xp:this.value>
<![CDATA[#{javascript:@DbLookup(@DbName(), "myView", viewScope.combo1, 5);}]]>
</xp:this.value>
</xp:selectItems>
</xp:comboBox>
</xp:panel>
谢谢大家!但不幸的是,问题仍然存在.... – user1533484 2012-07-18 10:50:13
本地方好〜但在web服务器上不好 combobox B保持不显示任何内容〜 – user1533484 2012-07-18 10:51:03
现在我更改我的代码如下: – user1533484 2012-07-18 10:51:24
如此感激您的建议 – user1533484 2012-07-18 06:41:24
现在我改变我的代码如下, 但仍对当地的工作不错,但在服务器上 返回任何结果保持现在正试图〜谢谢! :) var fd_AppChoice:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent(“fd_AppChoice”); var appChoice = @Trim(fd_AppChoice.getValue()); var server = @DbName(); var result = @DbLookup(server,“(A)”,appChoice,2); 返回结果 – user1533484 2012-07-18 06:45:13
我不知道你可以这样做 - 返回结果|| [“对不起,这里没有任何意见”] – RoyRumaner 2012-07-18 13:20:15