如何从C#程序迭代SharePoint列表和子网站?是否需要为此安装SharePoint安装SharePoint.dll
,或者是否存在可用于远程访问该数据的“Sharepoint客户端”dll?以编程方式访问SharePoint列表和子网站?
0
A
回答
6
使用Sharepoint Web服务;特别是Web和列表Web服务可以满足您的要求。
对于2007年的Sharepoint: http://msdn.microsoft.com/en-us/library/bb862916(v=office.12).aspx
1
对于SharePoint 2007,您将需要访问Web服务。在Sharepoint 2010中,有一个共享点客户端对象模型。
http://msdn.microsoft.com/en-us/library/ee857094%28office.14%29.aspx
+1
或者如果代码在SharePoint服务器上运行,请使用该API。 – 2010-12-13 17:13:31
0
我碰巧处理现在这事......这工作。我已经把代码搞糊涂了,只关注机制。这是边缘粗糙,但希望你能明白。它为我工作。
此外,请务必使用您的Sharepoint网站的URL设置Web引用。将其用作下面的“Web参考”。
private <web reference> _Service;
private String _ListGuid, _ViewGuid;
private Initialize()
{
_Service = new <web reference>.Lists();
_Service.Credentials = System.Net.CredentialCache.DefaultCredentials;
_Service.Url = "https://sharepointsite/_vti_bin/lists.asmx";
}
private String SpFieldName(String FieldName, Boolean Prefix)
{
return String.Format("{0}{1}", Prefix ? "ows_" : null,
FieldName.Replace(" ", "_x0020_"));
}
private String GetFieldValue(XmlAttributeCollection AttributesList,
String AttributeName)
{
AttributeName = SpFieldName(AttributeName, true);
return AttributesList[AttributeName] == null ?
null : return AttributesList[AttributeName].Value;
}
public void GetList()
{
string rowLimit = "2000"; // or whatever
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
System.Xml.XmlElement query = xmlDoc.CreateElement("Query");
System.Xml.XmlElement viewFields = xmlDoc.CreateElement("ViewFields");
System.Xml.XmlElement queryOptions =
xmlDoc.CreateElement("QueryOptions");
queryOptions.InnerXml = "";
System.Xml.XmlNode nodes = _Service.GetListItems(_ListGuid, _ViewGuid,
query, viewFields, rowLimit, null, null);
foreach (System.Xml.XmlNode node in nodes)
{
if (node.Name.Equals("rs:data"))
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].Name.Equals("z:row"))
{
XmlAttributeCollection att =
node.ChildNodes[i].Attributes;
String title = GetFieldValue("Title");
String partNumber = GetFieldValue("Part Number");
}
}
}
}
}
}
此外,SpFieldName方法不是铁包覆。对于列表中的大多数字段名称,这只是一个很好的猜测。不幸的是,这是一个发现之旅。如果它们不匹配,则需要公开XML以查找实际的字段名称。
好狩猎。
相关问题
- 1. 以编程方式删除SharePoint 2010中的子网站
- 2. 以编程方式更改Sharepoint在线子网站
- 3. Share Sharepoint列表子网站
- 4. SharePoint访问网站
- 5. 以编程方式访问受密码保护的网站
- 6. 如何访问SharePoint 2010中的子网站列表
- 7. 以编程方式访问C#中的SharePoint样式库
- 8. SharePoint如何获取所有子网站,子网站列表和列表内容
- 9. SharePoint 2007 - 如何以编程方式创建网站模板
- 10. SharePoint:以编程方式获取网站目录的类别
- 11. SharePoint 2013 - 以编程方式创建网站集
- 12. 以编程方式在Sharepoint中创建网站集
- 13. 以编程方式设置SharePoint网站的默认组
- 14. 在Sharepoint 2010中以编程方式创建我的网站
- 15. 以编程方式将网站模板(.stp)添加到SharePoint
- 16. 如何以编程方式获取所有SharePoint团队网站?
- 17. 以声明方式或编程方式创建Sharepoint列表?
- 18. 确定指定用户可以以编程方式访问的SharePoint站点和站点?
- 19. SharePoint 2010:以编程方式创建的子网站的自定义主页面
- 20. 以编程方式访问外部列表关联列
- 21. 以编程方式访问Sharepoint 2013社区网站上的讨论和回复的值
- 22. 以读/写模式在C#中从SharePoint网站以编程方式打开xls电子表格
- 23. 如何以编程方式访问网页表单?
- 24. 以编程方式访问SharePoint文档库?
- 25. 如何以编程方式从Hive访问Sharepoint资源文件?
- 26. 从列表工作流中以编程方式创建子网站
- 27. 以编程方式登录网站
- 28. 以编程方式登录网站
- 29. 以编程方式浏览网站
- 30. 以编程方式使网站静音
这是SharePoint 2007还是2010? – 2010-12-13 17:12:48