将Richtextbox与Infopath和Web服务一起使用

时间:2009-12-10 03:00:39

标签: web-services richtextbox infopath

我想检索并提交包含Rich Text的数据到Web服务,但我在Web服务端遇到了特定数据类型的问题。

如果我有来自webservice的简单字符串类型,infopath将不允许RTF框,因为它不是正确的数据类型(XHTML)。

有人有什么想法吗?

编辑:开始赏金。

2 个答案:

答案 0 :(得分:2)

您是正确的,Rich Text Box不会绑定到简单的字符串。 XML Schema类型是错误的。

如果您能够影响您要连接的网络服务的架构,则可以完成。

以下是一些更详细的信息:How to bind a Rich Text Box control to an element that is returned from a Web service in InfoPath and Visual Studio .NET 2003

如果您能够修改Web服务,则此解决方案有效。另一方面,如果你不是,你可能不得不依赖于在InfoPath表单中编写一些代码,这些代码将Web服务数据中的数据复制到未绑定的Rich Text Box,然后再返回。

顺便说一句,我假设你已经使用过InfoPath的Rich Text Box并看到了它产生的令人讨厌的HTML。如果您打算使用它,除了在InfoPath的富文本框中重新显示它之外,我不建议尝试使用该HTML。

答案 1 :(得分:0)

在xml文件上创建自定义引用,如下所示

    **<xsd:element name="myxhtmltest">
  <xsd:complexType mixed="true">
    <xsd:sequence>
      <xsd:any namespace="http://www.w3.org/1999/xhtml" processContents="lax"
    minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>**

然后使用上面的标记作为元素所在的参考 **<s:element ref="tns:myxhtmltest" minOccurs="0" maxOccurs="1"/>**