0

我想用保存、编辑、删除……按钮创建一个通用的操作栏自定义控件。

如何将 var 变量从 xpage 传递到自定义控件?

更新

我成功地将文档对象转移到自定义控件,我可以保存在文档中所做的更改,但我不能用相同的对象删除它。更新:

<xp:this.action>
    <xp:executeScript
        script="#{javascript:compositeData.datasrc.save()}">
    </xp:executeScript>
</xp:this.action>

删除不起作用:

<xp:deleteDocument
    message="Do you want to delete?"
    var="#{javascript:compositeData.datasrc}">
    <xp:this.name><![CDATA[#{javascript:var page = sessionScope.get("prevview");
    return (page=='')?'home.xsp':page}]]>    </xp:this.name>
</xp:deleteDocument>

我也试过:

var="#{javascript:compositeData.datasrc.getDocument()}">

但也没有用。

4

4 回答 4

3

定义自定义控件时,可以指定控件属性。然后,当您将自定义控件插入 XPage 或其他控件时,这些属性会显示在属性编辑器中。您可以指定数据类型并允许它们重复。这比依赖作用域变量要省钱。查看Chris 的介绍XPages 101 会话更多内容以获取灵感

于 2013-06-17T11:48:33.697 回答
0

例如,您可以使用Scoped Variable来做到这一点。如果变量值特定于该 XPage(和用户)viewScope可能是最好的。

于 2013-06-17T09:56:49.143 回答
0

这个变量的目的是什么?如果它是一个变量来控制显示哪些按钮,最好为每个按钮/部分创建属性。这些属性可以计算为返回真或假。

如果您想传递按钮应执行的代码,我建议您为最常见的位置(也称为操作)生成按钮栏,并使用构面在按钮栏上添加自定义按钮(在设计器中调用可编辑区域) .在这个方面,您将拖动一个面板,在该面板上放置按钮。

于 2013-06-17T17:26:29.497 回答
0

上述选项是最好的方法,但请记住,如果您在脚本块或 Xpage 中的其他位置定义变量,您也可以从 CustomControl 中的代码访问此变量。我认为这是因为 XPage 和自定义控件在编译时有点合并。请记住,这可能会导致非常严重的问题,尤其是回收问题。

于 2013-06-17T11:55:15.517 回答