Sharepoint 在会议工作区中,以编程方式从列表中获取所有议程项目
我想从定期会议工作区的特定列表中获取所有项目。我尝试执行以下CAML:Sharepoint 在会议工作区中,以编程方式从列表中获取所有议程项目,sharepoint,moss,wss,Sharepoint,Moss,Wss,我想从定期会议工作区的特定列表中获取所有项目。我尝试执行以下CAML: <Query> <Where> <IsNotNull> <FieldRef Name='ID' /> </IsNotNull> </Where> </Query> 但它只显示即将召开的会议的数据 但是,当我打开列表时,我可以从“操作”菜单中选择显示所有会议的数据。这使我认为这是可能的
<Query>
<Where>
<IsNotNull>
<FieldRef Name='ID' />
</IsNotNull>
</Where>
</Query>
但它只显示即将召开的会议的数据
但是,当我打开列表时,我可以从“操作”菜单中选择显示所有会议的数据。这使我认为这是可能的。我知道我可以将列表转换为系列项目,以便它们出现在所有会议中,但这不是我想要的。我认为列表的默认视图仅显示即将召开的会议列表项目,而不显示过去的会议列表项目 如果未指定在其上运行CAML查询的视图,它将从默认视图中检索所有项目。使用“所有项目”视图(如果是日历,则使用“所有事件”视图)而不是默认视图,同时将SPQuery.ExpandRecurrence属性设置为true。Yeehaaw 我终于找到了解决办法!SPQuery类有一个属性,您可以为该属性指定特定InstanceID的值(例如,2009年6月15日的项目为20090615),或者要查询所有项目,必须为其指定enum值(不要忘记将其强制转换为int) 然后,您只需执行查询即可从您想要的任何工作区获取项目 哦,别忘了
using Microsoft.SharePoint.Meetings;
也可以使用SPMeeting.SPecialInstance进行操作,但直接使用从-3到0的整数
示例代码:
using(SPSite site = new SPSite(<enter your workspace url>))
using (SPWeb web = site.OpenWeb())
{
SPQuery query = new SPQuery();
query.MeetingInstanceId = (int)SPMeeting.SpecialInstance.AllButSeries;
query.Query = @"<Query>
<Where>
<IsNotNull>
<FieldRef Name='ID' />
</IsNotNull>
</Where>
</Query>";
SPList list = web.Lists[<enter your list>];
foreach (SPListItem item in list.GetItems(query))
{
Console.WriteLine(item[item.Fields.GetFieldByInternalName("Title").Id]);
}
}
使用(SPSite site=new SPSite())
使用(SPWeb=site.OpenWeb())
{
SPQuery query=新建SPQuery();
query.MeetingInstanceId=(int)SPMeeting.SpecialInstance.AllButSeries;
query.query=@”
";
SPList list=web.Lists[];
foreach(列表中的SPListItem项。GetItems(查询))
{
Console.WriteLine(item[item.Fields.GetFieldByInternalName(“Title”).Id]);
}
}
花了这么多时间才找到这个。可能网上没有太多关于这个问题的信息,或者我没有选择正确的关键字,但无论如何,要归功于source,因为它首先获得了关键字“获取sharepoint workspace中的所有列表项”
我希望这对其他人有帮助。很遗憾,但是SPQuery.ExpandRecurrende属性没有帮助。以及AllItems视图不会显示所有定期会议中的项目,但仅显示此项目。共有3个视图可用:Attendeers(AllItems.aspx)、Manage Attendeers(ManageA.aspx)和default.aspx。但是,当从浏览器获取数据时,我看到它将一个字符串添加到url-InstanceID=ALL,并返回所有数据…对我来说,
GetListItems
方法的签名是public System.Xml.Linq.XElement GetListItems(string listName、string viewName、System.Xml.Linq.XElement查询、System.Xml.Linq.XElement视图字段、string rowLimit、System.Xml.Linq.XElement查询选项、string webID)
它使用XElement
,不XmlElement
也不XmlNOde
。我也有同样的错误。