在 KendoUI 网格中设置 sessionScope 变量以打开文档时出错

Error setting sessionScope variable in KendoUI grid to open document

我的应用程序对用户视图使用 KendoUI 网格,但对表单页面使用带有自定义控件的 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 的方法。

我可以控制 URL,所以我可以切换齿轮并使用它,但是我的应用程序的数据与我的代码位于不同的数据库中。

如有任何帮助,我们将不胜感激。

最简单的方法确实是使用 URL:
使用参数 ?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'}})