sharepoint:以编程方式将现有网站栏添加到现有内容类型

发布于 2024-11-25 03:39:13 字数 523 浏览 0 评论 0原文

var objWeb =properties.Feature.Parent as SPWeb;

SPContentType contentType = objWeb.ContentTypes["Wiki Page"];
if (!contentType.Fields.ContainsField("Keywords"))
{
    SPField field = objWeb.Fields["Keywords"];
    SPFieldLink fieldLink = new SPFieldLink(field);
    contentType.FieldLinks.Add(fieldLink);
    contentType.Update(true);
}

我在功能激活中使用此代码将网站栏“关键字”添加到网站内容类型“维基页面”我的问题是“关键字”添加到“维基页面”中,但不是从现有网站栏添加新网站栏。我的代码有问题吗?

另一件事是,当我在 Office365 上部署时,此代码在我的 MOSS 服务器上运行良好,我发现了这个问题

var objWeb = properties.Feature.Parent as SPWeb;

SPContentType contentType = objWeb.ContentTypes["Wiki Page"];
if (!contentType.Fields.ContainsField("Keywords"))
{
    SPField field = objWeb.Fields["Keywords"];
    SPFieldLink fieldLink = new SPFieldLink(field);
    contentType.FieldLinks.Add(fieldLink);
    contentType.Update(true);
}

I use This code in feature activation to add site column "KeyWord" to site content type "Wiki Page" my problem is "keyword" add in "wiki page" but not from the existing site column it's add new site column. is there problem in my code?

one other thing this code works fine on my MOSS server when i deploy on office365 this problem i found

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灯角 2024-12-02 03:39:13

您应该尝试下面的代码:

 if (objWeb.IsRootWeb)
 {   
    SPContentType contentType = objWeb.ContentTypes["Wiki Page"];
    if (!contentType.Fields.ContainsField("Keywords"))
    {
      SPField field = objWeb.Fields["Keywords"];
      SPFieldLink fieldLink = new SPFieldLink(field);
      contentType.FieldLinks.Add(fieldLink);
      contentType.Update(true);
    }
 }
 else
 {
   SPContentType contentTyperoot = site.RootWeb.ContentTypes["Wiki Page"];
   if (!contentTyperoot.Fields.ContainsField("Keywords"))
   {
     SPContentType contentType = site.RootWeb.ContentTypes["Wiki Page"];
     if (!contentType.Fields.ContainsField("Keywords"))
     {
       SPField field = site.RootWeb.Fields["Keywords"];
       SPFieldLink fieldLink = new SPFieldLink(field);
       contentType.FieldLinks.Add(fieldLink);
       contentType.Update(true);
     }
   }
 }

我希望有人能从我的代码中得到帮助:)

You should try the code below:

 if (objWeb.IsRootWeb)
 {   
    SPContentType contentType = objWeb.ContentTypes["Wiki Page"];
    if (!contentType.Fields.ContainsField("Keywords"))
    {
      SPField field = objWeb.Fields["Keywords"];
      SPFieldLink fieldLink = new SPFieldLink(field);
      contentType.FieldLinks.Add(fieldLink);
      contentType.Update(true);
    }
 }
 else
 {
   SPContentType contentTyperoot = site.RootWeb.ContentTypes["Wiki Page"];
   if (!contentTyperoot.Fields.ContainsField("Keywords"))
   {
     SPContentType contentType = site.RootWeb.ContentTypes["Wiki Page"];
     if (!contentType.Fields.ContainsField("Keywords"))
     {
       SPField field = site.RootWeb.Fields["Keywords"];
       SPFieldLink fieldLink = new SPFieldLink(field);
       contentType.FieldLinks.Add(fieldLink);
       contentType.Update(true);
     }
   }
 }

I hope someone is being helped from my code :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文