【问题标题】:Getting fields from a list on Sharepoint page从 Sharepoint 页面上的列表中获取字段
【发布时间】:2011-03-29 01:17:59
【问题描述】:

我是 Sharepoint 的新手,我在 Sharepoint 网站上有一个 aspx 页面,显示字段列表,包括名字、姓氏等。我在 Visual Studio 中有一个控制台应用程序,我' m 用于测试一个 Web 服务与另一个 Web 服务之间的通信和数据传输能力;即 Sharepoint 和另一个网络服务。我的目标是使用来自其他 Web 服务的数据填充我的 Sharepoint 站点上列表中的各个字段。我正在使用对我的 Sharepoint 服务器上的 Lists Web 服务的 Web 引用来尝试访问 Sharepoint 站点上此特定列表中的字段。我有以下代码:

''Name of my web reference to Lists Web Service is "sharepoint"
        Dim sharepointList As New sharepoint.Lists()
        sharepointList.Credentials = System.Net.CredentialCache.DefaultCredentials

        Dim testLists As XmlNode = sharepointList.GetListCollection
        Dim xmlText As String = testLists.InnerXml
        Dim xmlElement As XmlAttributeCollection = testLists.Attributes

我一直试图找出这个特定列表的位置。我承认我不确定我应该在哪里寻找,如上面的代码所示。我一直在使用调试器来分析上述每个变量,以尝试找到在 XML 中定义此特定列表的位置。感谢您提供任何帮助或见解。

这是包含我要搜索的列表的 Sharepoint 页面的快照:

更新:

我决定使用 GetList() 函数并将名称“New Hires”传递给它。它最终抓住了上面的列表。现在我只是想看看我是否可以访问上图所示的字段,分析 xml 似乎这些只是显示名称,实际的 fieldID 是一些字母数字字符串,即 Display Name = "Business Phone" 有字段 ID =“{fd630629-c165-4513-b43c-fdb16b86a14d}”。我想知道是否有办法按显示名称搜索字段。

【问题讨论】:

  • GetList 方法返回有关列表本身的信息(模式),但不返回其中的实际数据。你想要的是GetListItems 方法,它接受一个有点像SQL 的查询(使用协作应用程序标记语言或CAML 编写)。您还可以告诉该方法仅返回您通过列名称或 GUID 指定的特定字段子集(这些都与显示名称不同)。

标签: xml visual-studio web-services sharepoint sharepoint-2007


【解决方案1】:

【讨论】:

  • 谢谢 Ryan,我会看看这些资源,它们看起来很有启发性。我不只是在寻找一个直接的答案,而且还想了解我在做什么以及它是如何工作的。
【解决方案2】:

这是一个双管齐下的方法。

首先,您需要从您的列表所在的特定网站的上下文中访问 SharePoint 服务。例如,如果您的列表的 URL 是:

http://sharepoint/foo/bar/baz/Lists/MyList

您可以从以下位置访问列表 Web 服务:http://sharepoint/foo/bar/baz/_vti_bin/lists.asmx

现在您位于正确的网站集中。剩下的步骤是在调用 List 方法之一时通过名称或 GUID 指定列表。例如,如果你正在调用 UpdateListItems 方法(听起来你会这样),你会使用:

sharepoint.UpdateListItems( "{B1DC8A9C-2316-41AD-875B-01C9D4BD19F8}", myUpdateXml );

sharepoint.UpdateListItems( "MyList", myUpdateXml );

显然,列表名称将与您在列表 URL 中看到的实际列表名称相对应。可以通过查看 SharePoint 中的列表找到 GUID,然后导航到设置 > 列表设置并从 URL 中获取它(查找 List 查询字符串参数)。它将被编码,但您可以使用URL Decoder/Encoder 之类的实用程序将其解码为正确的 GUID。在将 GUID 作为参数发送时,请务必记住使用 {} 括号。

【讨论】:

  • 嘿CBono,感谢您的洞察力。我将把它添加到我的代码中,并弄清楚如何让它在我的项目中工作。获取列表访问权限是第一步,正如我所提到的,最终我希望能够使用来自其他 Web 服务的新数据填充此列表,该应用程序充当中间人处理该操作的原型。
  • 你肯定会想要 UpdateListItems 方法(我的答案包含该方法的 MSDN 文档的超链接)。
猜你喜欢
  • 1970-01-01
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2011-08-27
  • 2010-10-07
相关资源
最近更新 更多