从 XSD 创建的信息路径表单:下拉列表空值"Select"



我创建了一个XSD,然后基于这个XSD创建了一个InfoPath表单(2010)。都很好,但是我在枚举方面有一点小问题。为了创建枚举,我创建了一个简单类型,例如:

<xs:simpleType name="weekday">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MA"/>
      <xs:enumeration value="DI"/>
      <xs:enumeration value="WO"/>
      <xs:enumeration value="DO"/>
      <xs:enumeration value="VR"/>
      <xs:enumeration value="ZA"/>
      <xs:enumeration value="ZO"/>
    </xs:restriction>
  </xs:simpleType>

当我在InfoPath中创建一个下拉菜单时,它会自动创建一个包含这些值和一个显示名为"Select…"的空值的下拉菜单。但是,我希望"Select…"是荷兰语的翻译,即"Selecteer…"。当我改变选择值时,我得到错误"指定的值是无效的"(即使我什么都没改变)

我也遇到过同样的问题,如果不编辑原始xsd,就找不到简单的解决方法。

什么不适合我:

  • 通过属性窗口修改"Select…"选项
  • 试图欺骗InfoPath通过交换绑定源到一个不同的(可空的)字段,然后改变"选择…"文本,然后交换绑定回来(InfoPath恢复文本回到原来的值!)

我能找到的最不坏的解决方案是:

  • 添加一个空白枚举到你的Weekday xsd类型:<xs:enumeration value=""/>
  • 在Data选项卡中,刷新字段以利用新的xsd
  • 然后在下拉菜单中添加一个新的验证规则,以确保选择Weekday值;即条件:"is blank",屏幕提示:"Cannot be blank"。

在您的下拉菜单中,您现在可以修改"Select…"显示文本到您想要的内容,同时保留工作日作为必填字段。

如果您确实需要,那么您可以将xsd还原为其原始格式,刷新字段,并删除规则....下拉框仍将保留您自定义的默认文本。

最新更新