SPAlert触发何时发布某种内容类型的页面

问题描述:

任何人都可以让我知道如何触发一个提醒只有当某个页面的某个内容类型发布在MOSS?SPAlert触发何时发布某种内容类型的页面

需求是在发布网站的网页库中设置警报,以便在某人使用某种内容类型创建页面并发布该页面时发送通知。我设法触发了使用内容类型创建的页面的警报。另外,当页面使用CAML在SPAlert.Filter属性中发布时。

但是,当我结合查询使用CAML <And></And>警报停止触发任何通知。

有谁知道为什么会发生这种情况?并且在SPAlert.Filter中使用CAML <And>的正确方法是?

我的代码:

SPUser user = SPContext.Current.Web.CurrentUser; 
SPWeb web = SPContext.Current.Web; 

SPAlert alert = user.Alerts.Add(); 

alert.Filter = "<Query><And><Eq><FieldRef Name='ContentType' /><Value Type='Text'>CUSTOM_PAGE_CONTENT_TYPE</Value></Eq><Eq><FieldRef Name='_ModerationStatus' /><Value Type='Integer'>0</Value></Eq></And></Query>"; 

alert.Title = "Alert Title"; 
alert.AlertType = SPAlertType.List; 
alert.EventType = SPEventType.All; 
alert.List = web.Lists["Pages"]; 
alert.AlertFrequency = SPAlertFrequency.Immediate; 
alert.AlwaysNotify = true; 
alert.Update(true); 

由于提前, Rizi。

试试这个:

<Query> 
    <Where> 
     <And> 
      <Eq> 
       <FieldRef Name='ContentType' /> 
       <Value Type='Text'>CUSTOM_PAGE_CONTENT_TYPE</Value> 
      </Eq> 
      <Eq> 
       <FieldRef Name='_ModerationStatus' /> 
       <Value Type='ModStat'>Approved</Value> 
      </Eq> 
     </And> 
    </Where> 
</Query> 

你需要在哪里查询和与之间的元素。另外,使用ModStat类型而不是整型for ModerationStatus。

实际上,SPAlert.Filter属性不应该有<Where> XML元素。从过滤XML片段中删除它,你应该有它的工作。

查看本页的第二个备注框: http://msdn.microsoft.com/en-us/library/bb802961(v=office.12).aspx