我对InfoPath 2010表单有一个问题,它背后有一些代码。我的表单的目的是从用户收集数据,并使用提供的答案,自动填充许多所需的任务。这些任务填充在表单的重复部分中。我的代码后面包含自动填充重复部分中每个条目的逻辑。我正在使用XMLWriter类和WriteStringElement方法来填充重复部分中的每个字段。
最初所有这些逻辑看起来都按预期工作,这些部分按预期填充。但我现在意识到写入XML格式的字段存在问题。
使用工作流程我正在为重复部分中的每个项目生成SharePoint任务。完成任务后,我将状态和完成日期写回表单。我遇到的问题是,在最初设置表单中的任务时,我显然没有填充CompletedDate字段。我假设该字段将自动添加到表单XML中,并带有xsi:nil = true属性。相反,它根本不在XML中,并且我的工作流在查找节点“faCompletedDate”时抛出了Object Reference而没有设置错误。检查表单的XML,它不存在。
我认为我需要的解决方案是在表单后面的代码中写出一个xsi:nil属性给teh faCompletedDate,我不知道这是怎么做的。
我曾尝试过:
writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()
但是这会引发模式验证,发现非数据类型错误。
有人可以帮我解决这个问题并提出最佳使用方法。
答案 0 :(得分:1)
好的,我设法解决了这个问题。看来我错过了我的一个XMlWriter语句中的命名空间管理器参数。更新这个允许我按预期写出完整的部分。