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