Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布特定内容类型的页面时触发的SPAlert_C#_Sharepoint_Sharepoint 2007_Caml_Sharepoint Alerts - Fatal编程技术网

C# 发布特定内容类型的页面时触发的SPAlert

C# 发布特定内容类型的页面时触发的SPAlert,c#,sharepoint,sharepoint-2007,caml,sharepoint-alerts,C#,Sharepoint,Sharepoint 2007,Caml,Sharepoint Alerts,有谁能告诉我,只有当某个内容类型的页面在MOSS中发布时,如何触发警报 要求是在发布站点的页面库中设置警报,以便在有人使用特定内容类型创建页面并发布该页面时发送通知。我已成功触发使用内容类型创建的页面的警报。分别在使用SPAlert.Filter属性中的CAML发布页面时 但是,当我使用CAML组合查询时,警报将停止触发任何通知 有人知道为什么会这样吗?以及在SPAlert.Filter中使用CAML的正确方法 我的代码: SPUser user = SPContext.Current.Web.

有谁能告诉我,只有当某个内容类型的页面在MOSS中发布时,如何触发警报

要求是在发布站点的页面库中设置警报,以便在有人使用特定内容类型创建页面并发布该页面时发送通知。我已成功触发使用内容类型创建的页面的警报。分别在使用
SPAlert.Filter
属性中的CAML发布页面时

但是,当我使用CAML
组合查询时,警报将停止触发任何通知

有人知道为什么会这样吗?以及在
SPAlert.Filter
中使用CAML
的正确方法

我的代码:

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);
SPUser user=SPContext.Current.Web.CurrentUser;
SPWeb web=SPContext.Current.web;
SPAlert alert=user.Alerts.Add();
alert.Filter=“自定义页面内容类型0”;
alert.Title=“alert Title”;
alert.AlertType=SPAlertType.List;
alert.EventType=SPEventType.All;
alert.List=web.List[“页面”];
alert.AlertFrequency=SPAlertFrequency.Immediate;
alert.AlwaysNotify=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>

自定义页面内容类型
经核准的
在查询和之间需要一个Where元素。另外,对于ModerationStatus,请使用ModStat类型而不是Integer。

尝试以下方法:

<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>

自定义页面内容类型
经核准的

在查询和之间需要一个Where元素。另外,对ModerationStatus使用ModStat类型而不是Integer。

实际上,SPAlert.Filter属性不应该包含
XML元素。从过滤XML片段中删除它,您应该让它工作

选中此页上的第二个注释框:

实际上,SPAlert.Filter属性不应该包含
XML元素。从过滤XML片段中删除它,您应该让它工作

选中此页上的第二个注释框: