我的应用程序使用KendoUI Grids来查看用户视图,但是Xpages使用表单页面的自定义控件(至少目前为止)。
Xpage查找sessionScope变量以确定它是否是新文档(范围Var中没有任何内容)或更新(unid在var中)。
<xp:this.data>
<xe:objectData
saveObject="#{javascript:PCModel.save()}"
var="PCModel">
<xe:this.createObject><![CDATA[#{javascript:var pc = new com.scoular.model.PC();
var unid = sessionScope.get("key");
if (unid != null) {
pc.loadByUnid(unid);
sessionScope.put("key","");
viewScope.put("readOnly","Yes");
} else {
pc.create();
viewScope.put("readOnly","No");
}
viewScope.status = pc.status;
return pc;}]]></xe:this.createObject>
</xe:objectData>
</xp:this.data>
这适用于完整的Xpage应用。我只是在sessionScope键中输入一个值并调用Xpage。
在Kendo UI代码中,我使用的是客户端javascript,但我没有看到设置sessionScope的方法。
我可以控制网址,因此我可以切换并使用它,但是我的应用程序的数据与我的代码位于不同的数据库中。
非常感谢任何帮助。
答案 0 :(得分:1)
最简单的方法是使用网址:
使用参数?key=...
调用XPage并将CSJS代码行更改为
var unid = param.key;
如果您确实需要从客户端设置sessionScope变量 然后添加这个空的计算文本字段
<xp:text
escape="true"
id="setSessionScope"
value="#{javascript: if (param.key) {sessionScope.key = param.key} ''}" />
到您的XPage并使用
在CSJS代码中设置sessionScope变量XSP.partialRefreshGet("#{id:setSessionScope}", {params: {'key': 'your key'}})