SharePoint Lists.asmx:查询返回“已删除”日历项目?

问题描述:

在针对sharepoint list.asmx服务运行caml查询时,我有这种奇怪的行为,GetListItems方法也返回已删除项;SharePoint Lists.asmx:查询返回“已删除”日历项目?

found item: test 
found item: already done 
found item: recurring 
found item: recurring event 3-4 
found item: Deleted: recurring event 3-4 
found item: Deleted: recurring event 3-4 
found item: Deleted: recurring event 3-4 
found item: Deleted: recurring event 3-4 
found item: Deleted: recurring event 3-4 
found item: todays event 15-16 //<- NOT DELETED YET 

这是怎么发生的?我需要在caml查询上应用特殊的过滤器吗?我目前正在查询如下;

<Query> 
    <OrderBy> 
    <FieldRef Ascending='TRUE' Name='EventDate' /> 
    </OrderBy> 
    <Where> 
    <Eq> 
     <FieldRef Name='EventDate' /> 
     <Value Type='DateTime'><Today /></Value> 
    </Eq> 
    </Where> 
</Query> 

我到目前为止试过的东西; 1.清除回收站中的所有内容 2.在Sharepoint网络服务器上执行iisreset

请注意;即时通讯在VMWare Workstation环境中运行。

+0

你解决了吗?了解最终答案会很有用。 – 2010-09-02 19:38:19

根据传递的日历的经验,他们有一个非常奇怪(但合乎逻辑)的方式来处理经常性事件。首先有两件事,日历基本上只是一个专门的列表(就像SP中的所有东西一样),并且有一个花哨的视图控件。

将某个项目添加到日历中时,会将单个项目添加到该列表中。当添加周期性事件时,SP不会在列表中添加无数个项目,它会添加一个特殊的“重复”项目,正如您注意到的那样。然后,如果您删除了一些个人重复发生的事件(即每周会议,但在下个星期二取消),SP会在列表中添加一个特殊的“已移除事件”项。这些项目并没有实际上被删除,因为它们存在并且不再存在,它们仅仅是重复事件的例外。因此,当您在列表视图中查看日历时,它们会被过滤掉,但它们本身就是“真正的”单独的SP列表项目。

我希望这是有道理的。

+0

它是有道理的!我可以过滤这些吗?我如何确定是否持有实例或异常? – Obelix 2009-06-04 13:15:29