在Task Form中的FormEvents_Loading事件中读取第二数据源ItemMetadata中的数据。ItemMetadata中包含了丰富的数据,在工作流中把RequestForm的xml数据存储到ows_ReqXMLSource字段中,此时再来读取这个字段的值时,我们会发现不仅仅是Request的xml数据,还有丰富Task相关联的所有数据(Request对应的Form Library和Task Id等信息)。
string xmlSource = this.DataSources["ItemMetadata"].CreateNavigator().OuterXml; XmlDocument nodeDoc = new XmlDocument(); nodeDoc.LoadXml(xmlSource); XmlNamespaceManager xnm = new XmlNamespaceManager(nodeDoc.NameTable); xnm.AddNamespace("z", "#RowsetSchema"); string myFields = nodeDoc.SelectSingleNode("/z:row/@ows_ReqXMLSource", xnm).Value; XmlDocument document = new XmlDocument(); document.LoadXml(myFields); XPathNavigator mainNav = this.MainDataSource.CreateNavigator(); XPathNavigator viewStateNode = mainNav.SelectSingleNode("/my:MyFields", NamespaceManager); viewStateNode.InnerXml = node.InnerXml;