2

我有一个使用 Forms Builder 创建的表单 - 此表单在底部显示一个刻度线和一个软盘图标(用于保存)。我不希望显示那些,因为在我的代码中没有使用这些按钮执行持久性。如何实现这一点(不显示这些图标) - 我已经完成了

<property as="xs:string" name="oxf.fr.detail.buttons.*.*" value="" />

<property as="xs:string" name="oxf.fr.detail.buttons.view.*.*" value="back pdf" />

在我的本地属性文件中

此外,我使用 xforms:load 操作将用户引导到另一个页面 - 这会导致显示软盘图标(检测到该实例可能已更改)并且还会显示一个警报,确认我是否真的想离开该页面。如何禁用此警告(实例数据会更改,但我不希望首先出现软盘/保存图标)...

[edit1] 基于建议:

由于我想要的根本不是按钮(在初始表单上,根据用户在 select1 中选择的内容采取行动),我做了:

...</fr:body><fr:buttons /></fr:view>... 

但这无济于事(勾号和软盘图标仍然出现)。我也做过

<xforms:action ev:event="xforms-select" target="XMLOptions-control"
                   if="event('xxforms:item-value')='RETRIEVE'">
        <!-- workaround to stop showing the alert asking the user if they really want to move away from the page -->
        <xforms:setvalue ref="xxforms:instance('fr-persistence-instance')/data-safe">true</xforms:setvalue>
        <xforms:load show="replace" resource="/fr/prototype/retrieval/new"/>
    </xforms:action>  

这也无济于事(继续显示警报对话框)。我在我的 xforms 源中看不到任何名为“fr-persistence-instance”的实例。

4

1 回答 1

2

您的第一个属性是删除详细信息页面中所有按钮的正确属性:

<property as="xs:string"  name="oxf.fr.detail.buttons.*.*" value=""/>

但在我看来,您想要做的是添加自己的自定义按钮,而不是使用默认按钮。oxf.fr.detail.buttons.*.*您可以编辑表单源并将您自己的按钮放置在其中,而不是更改属性<fr:buttons>请参阅使用表单生成器创建向导或多页表单的“包括标准按钮”部分。

为了避免消息询问用户是否真的想离开当前页面,在 之前<xforms:load>,请执行以下操作:

<xforms:setvalue ref="xxforms:instance('fr-persistence-instance')/data-safe-override">true</xforms:setvalue>

例如,你可以把它放在你自己的按钮中:

<fr:buttons>
    <fr:button>
        <xforms:label>Go to Orbeon</xforms:label>
        <xforms:action ev:event="DOMActivate">
            <xforms:setvalue ref="xxforms:instance('fr-persistence-instance')/data-safe-override">true</xforms:setvalue>
            <xforms:load resource="http://www.orbeon.com/"/>
        </xforms:action>
    </fr:button>
</fr:buttons>

要隐藏告诉您数据是否有效的状态图标,您可以使用以下 CSS(有关如何添加自己的 CSS 的更多信息,请参阅样式):

.fr-status-icons { display: none }
于 2011-03-08T17:58:47.033 回答