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

时间:2016-10-06 18:06:03

标签: xpages kendo-ui-grid

我的应用程序使用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的方法。

我可以控制网址,因此我可以切换并使用它,但是我的应用程序的数据与我的代码位于不同的数据库中。

非常感谢任何帮助。

1 个答案:

答案 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'}})