表单运行表单 - 导航到另一个页面时显示警告,自动显示勾选和保存按钮

时间:2011-03-08 09:53:04

标签: orbeon

我有一个使用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'的实例。

1 个答案:

答案 0 :(得分:2)

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

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

但在我看来,你想要做的是添加自己的自定义按钮,而不是使用默认按钮。您可以编辑表单源并将自己的按钮放在oxf.fr.detail.buttons.*.*中,而不是更改<fr:buttons>属性。请参阅Create a wizard or multi-page form with Form Builder上的“包括标准按钮”部分。

要避免询问用户是否确实想要离开当前页面的消息,请在<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的更多信息,请参阅styling):

.fr-status-icons { display: none }