0

我创建了一个 EventReciever,它将在创建站点时被激活。这个网站有一个公告webpart。当他们点击“添加公告”时,newform.aspx 会弹出一个对话框,并且有一个名为 Expired 的字段我需要将其设为必需,因此必须使用该字段,否则它会阻止用户添加公告。

如何在我的 EventReciever 中找到该特定字段并将其设置为必需?

<!-- FieldName="Expires"
             FieldInternalName="Expires"
             FieldType="SPFieldDateTime"
          -->

这就是我到目前为止的进步:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{

    if (properties.Feature.Parent is SPWeb)
    {
        var web = properties.Feature.Parent as SPWeb;
            var expiredDate = web.Fields.GetFieldByInternalName("Expires");
            expiredDate.Required = true;
            expiredDate.Update();

    }

}

任何类型的提示或帮助表示赞赏!

4

1 回答 1

1

您的 WebPart 可能会查询特定列表?在这种情况下,还可以选择在该列表中设置 Expires too required。

您当前的代码只会更新站点中的 Expires 站点列,它不会将这些更改推送到使用此列的列表中。如果您要在执行代码后创建一个新列表,您将有一个需要 Expires 的列表。

但是,通过阅读您的代码,我的猜测是您实际上想要更新当前列表和包含该列的所有新列表。在这种情况下,您应该修改expiredDate.Update()to expiredDate.Update(true)。此布尔值向 SharePoint 指示您希望将更改推送到现有列表。执行此更新后,您将看到现有列表还要求用户填写到期日期。

于 2013-03-21T20:33:04.613 回答