首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在站点上查找特定字段,并在EventReciever中将其设置为“必填”

在站点上查找特定字段,并在EventReciever中将其设置为“必填”
EN

Stack Overflow用户
提问于 2013-03-21 18:29:48
回答 1查看 134关注 0票数 0

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

如何在EventReciever中找到该特定字段并将其设置为Required?

代码语言:javascript
复制
<!-- FieldName="Expires"
             FieldInternalName="Expires"
             FieldType="SPFieldDateTime"
          -->

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

代码语言:javascript
复制
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();

    }

}

任何类型的提示或帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-22 04:33:05

你的WebPart可能会查询一个特定的列表?在这种情况下,也可以在该列表上设置Expires的required。

您当前的代码将仅更新网站中的“过期网站”列,而不会将这些更改推送到使用此列的列表中。如果您要在执行代码后创建一个新列表,那么您将拥有一个需要Expires的列表。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15544970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档