Jan*_*rgs 3 sharepoint moss wss
我想从定期会议工作区中的特定列表中获取所有项目.我试图执行以下CAML:
<Query>
<Where>
<IsNotNull>
<FieldRef Name='ID' />
</IsNotNull>
</Where>
</Query>
Run Code Online (Sandbox Code Playgroud)
但它只显示即将召开的会议的数据.
但是当我打开列表时,从操作菜单中我可以选择显示所有会议的数据.这让我觉得有可能.我知道我可以将列表转换为系列项目,以便它们出现在所有会议中,但这不是我想要的.
Yeehaaw!
最后我找到了解决方案!SPQuery类有一个属性MeetingInstanceId,您可以为其指定一个特定InstanceID的值(例如2009-0615为2009年6月15日的项目)或查询所有必须为其分配的项目SPMeeting.SpecialInstance枚举值(不要忘记将其强制转换)到int).
然后,您只需执行查询即可从您想要的任何工作空间中获取项目.
哦,别忘了
using Microsoft.SharePoint.Meetings;
Run Code Online (Sandbox Code Playgroud)
或者您可以省略使用SPMeeting.SPecialInstance,但直接使用-3到0的integeres
示例代码:
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
花了这么多时间才找到它.网络上可能没有太多关于这个问题的信息,或者我没有选择正确的关键字,但无论如何都要归功于这个来源首先获得关键字"让所有列表项共享点工作区重复出现".
我希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
5617 次 |
| 最近记录: |