sharepoint

Trong chương này, ta sẽ học cách thêm mã xử lý . Xử lý mã là các sự kiện được đưa ra khi một Tính năng được kích hoạt hoặc hủy kích hoạt. Nói cách khác, chúng tôi sẽ kiểm tra Bộ thu tính năng .

Dự án Visual Studio chương trước có một Tính năng và khi được kích hoạt, nó cung cấp danh sách Liên hệ, trang và liên kết đến Trang web.

Tuy nhiên, khi Tính năng bị vô hiệu hóa, SharePoint chỉ loại bỏ liên kết, SitePage và danh sách Liên hệ vẫn còn.

Chúng tôi có thể viết mã khi Tính năng ngừng hoạt động để xóa danh sách và trang, nếu chúng tôi muốn. Trong chương này, chúng ta sẽ tìm hiểu cách xóa nội dung và phần tử khi một Tính năng bị hủy kích hoạt.

Để xử lý các sự kiện cho một Tính năng, chúng tôi cần một Bộ thu tính năng .

Bước 1 – Để tải Bộ thu Tính năng, nhấp chuột phải vào Tính năng trong Trình khám phá Giải pháp và sau đó chọn Thêm Bộ thu Sự kiện .

using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;

namespace FeaturesAndElements.Features.Sample {
   /// <summary>
      /// This class handles events raised during feature activation, deactivation,
         installation, uninstallation, and upgrade.
   /// </summary>
   /// <remarks>
      /// The GUID attached to this class may be used during packaging and should not be modified.
   /// </remarks>
   [Guid("e873932c-d514-46f9-9d17-320bds3fbcb8a6")]
  
   public class SampleEventReceiver : SPFeatureReceiver {
      // Uncomment the method below to handle the event raised after a feature has been activated.
      //public override void FeatureActivated(SPFeatureReceiverProperties properties)//{
         //
      }
      // Uncomment the method below to handle the event raised before a feature is deactivated.
      //public override void FeatureDeactivating(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised after a feature has been installed.
      //public override void FeatureInstalled(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised before a feature is uninstalled.
      //public override void FeatureUninstalling(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised when a feature is upgrading.
      //public override void FeatureUpgrading(SPFeatureReceiverProperties
         properties, string upgradeActionName,
         System.Collections.Generic.IDictionary<string, string> parameters) // {
         //
      }
   }
}

Bạn có thể thấy những gì chúng tôi nhận được là một lớp kế thừa từ SPFeatureReceiver .

Trong SharePoint, có các lớp khác nhau cho các loại sự kiện khác nhau mà bạn có thể xử lý. Ví dụ: sự kiện trên danh sách, sự kiện trên mục danh sách, sự kiện trên trang web. Bạn có thể tạo một lớp có nguồn gốc từ một bộ thu sự kiện cụ thể và sau đó bạn có thể ghi đè các phương thức bên trong lớp đó để xử lý các sự kiện.

Sự kiện của một Tính năng được sử dụng khi –

  • Đã kích hoạt
  • Đã hủy kích hoạt
  • Cài đặt
  • Đã gỡ cài đặt
  • Nâng cấp

Tiếp theo, bạn cần đính kèm lớp đó làm trình xử lý sự kiện cho mục cụ thể. Ví dụ: nếu có một trình xử lý sự kiện xử lý các sự kiện danh sách, bạn cần đính kèm lớp đó vào danh sách.

Do đó, chúng tôi sẽ xử lý hai Tính năng –

  • Khi tính năng được kích hoạt và
  • Khi nó đang bị vô hiệu hóa.

Bước 2 – Chúng tôi sẽ thực hiện các phương pháp FeatureActiised và FeatureDeactiised như hình dưới đây

using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;

namespace FeaturesAndElements.Features.Sample {
   /// <summary>
      /// This class handles events raised during feature activation, deactivation,
         installation, uninstallation, and upgrade.
   /// </summary>
   /// <remarks>
      /// The GUID attached to this class may be used during packaging and should
         not be modified.
   /// </remarks>

   [Guid("e873932c-d514-46f9-9d17-320bd3fbcb86")]
   public class SampleEventReceiver : SPFeatureReceiver {
      private const string listName = "Announcements";
      
      public override void FeatureActivated(SPFeatureReceiverProperties properties) {
         var web = properties.Feature.Parent as SPWeb;
         
         if (web == null) return;
         var list = web.Lists.TryGetList(listName);
         
         if (list != null) return;
         var listId = web.Lists.Add(listName, string.Empty,
         SPListTemplateType.Announcements);
         list = web.Lists[listId];
         list.OnQuickLaunch = true;
         list.Update();
      }
      public override void FeatureDeactivating(SPFeatureReceiverProperties properties) {
         var web = properties.Feature.Parent as SPWeb;
         
         if (web == null) return;
         var list = web.Lists.TryGetList(listName);
         
         if (list == null) return;
         if (list.ItemCount == 0) {
            list.Delete();
         }
      }
   }
}

Lưu ý –

  • Khi tính năng được kích hoạt, chúng tôi sẽ tạo danh sách Thông báo.
  • Khi tính năng này bị hủy kích hoạt, chúng tôi sẽ kiểm tra xem danh sách Thông báo có trống không và nếu có, chúng tôi sẽ xóa nó.

Bước 3 – Bây giờ nhấp chuột phải vào Dự án và chọn triển khai. Bạn sẽ thấy cảnh báo Xung đột Triển khai sau đây.

SharePoint - Tính năng \ Bộ thu sự kiện

Visual Studio cho chúng tôi biết rằng chúng tôi đang cố gắng tạo một danh sách được gọi là danh sách liên hệ, nhưng đã có một danh sách trong trang web được gọi là Danh sách liên hệ. Nó hỏi chúng tôi nếu chúng tôi muốn ghi đè danh sách hiện có và trong trường hợp này, hãy nhấp vào Giải quyết .

Bước 4 – Quay lại SharePoint, sau đó làm mới trang web của bạn và đi tới Hành động trang → Cài đặt trang → Quản lý tính năng trang → Tính năng mẫu

SharePoint - Tính năng \ Bộ thu sự kiện

Bạn có thể thấy rằng không có danh sách thông báo trong ngăn bên trái.Bước 5 – Hãy để chúng tôi Kích hoạt tính năng Mẫu và bạn sẽ thấy danh sách Thông báo, nhưng hiện tại nó đang trống.

SharePoint - Tính năng \ Bộ thu sự kiện

Lưu ý – Nếu bạn hủy kích hoạt Tính năng mẫu thì bạn sẽ nhận thấy rằng danh sách Thông báo biến mất.

Bước 6 – Hãy để chúng tôi kích hoạt lại tính năng. Đi tới Thông báo và sau đó Thêm thông báo mới. Chúng tôi sẽ gọi đây là Kiểm tra và sau đó nhấp vào Lưu.

SharePoint - Tính năng \ Bộ thu sự kiện

Bạn sẽ thấy tệp Kiểm tra trong Thông báo.

SharePoint - Tính năng \ Bộ thu sự kiện

Bây giờ khi bạn Hủy kích hoạt Thông báo, bạn sẽ thấy rằng danh sách Thông báo vẫn ở lại vì nó không trống.

SharePoint - Tính năng \ Bộ thu sự kiện

SharePoint – Nền tảng Azure (xem thêm)

Để lại một bình luận