我正在尝试使用 UserGroup.asmx Sharepoint Web 服务来填充 InfoPath 2007(2003 兼容表单)中的下拉列表。我按照这里的说明操作:http: //tim.bellette.net/2008/12/13/getting-sharepoint-users-in-infopath-2003。我将以下代码放在表单的 OnLoad 事件中,如果设置断点,我可以看到 GetUserCollectionFromGroupXML DOM 包含正确的数据,但下拉列表仍然为空。我没有得到什么?
XmlDocument userCollectionFromGroup = new XmlDocument();
userCollectionFromGroup.LoadXml(thisXDocument.DataObjects["GetUserCollectionFromGroup"].DOM.xml);
XPathNavigator siteUsers = userCollectionFromGroup.CreateNavigator();
XmlNamespaceManager manager = new XmlNamespaceManager(siteUsers.NameTable);
manager.AddNamespace("dfs", "http://schemas.microsoft.com/office/infopath/2003/dataFormSolution");
manager.AddNamespace("tns", "http://schemas.microsoft.com/sharepoint/soap/directory/");
// Query the user nodes
XPathNavigator allUsers = siteUsers.SelectSingleNode("/dfs:myFields/dfs:dataFields/tns:GetUserCollectionFromGroupResponse/tns:GetUserCollectionFromGroupResult/tns:GetUserCollectionFromGroup/tns:Users", manager);
// Load the users into the SiteUsersAndGroups connection
thisXDocument.DataObjects["GetUserCollectionFromGroupXML"].DOM.loadXML("<GetUserCollectionFromGroup>" + allUsers.OuterXml + "</GetUserCollectionFromGroup>");