首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WSS 3.0 SDK 實戰指南:在站台集使用者介面新增自訂動作——Feature 部署 CustomAction 完整演練

     編輯:關於.NET

演練目標

示範如何透過 Feature 部署 CustomAction,在站台集各處選單(文件庫工具列、網站動作、項目右鍵選單 ECB、表單工具列、網站設定、內容類型設定)新增自訂連結/按鈕,並驗證呈現效果。

核心概念:Location 與 GroupId 定位選單位置

CustomAction 必須指定 Location(命名空間/選單類別)與 GroupId(選單內區塊):

Location對應 UI 區域常用 GroupId
Microsoft.SharePoint.StandardMenu文件庫/列表工具列下拉選單NewMenu、UploadMenu、ActionsMenu、SettingsMenu、ViewToolbar、ViewSelectorMenu
Microsoft.SharePoint.StandardMenu網站動作選單SiteActions
EditControlBlock項目右鍵選單 (ECB)(需 Type="ECBItem"、Sequence 排序)
DisplayFormToolbar顯示表單工具列-
EditFormToolbar編輯表單工具列-
Microsoft.SharePoint.SiteSettings網站設定頁面Customization、SiteAdministration、SiteCollectionAdmin 等
Microsoft.SharePoint.ContentTypeSettings內容類型設定頁面General、AdvancedSettings 等
其他常用 GroupId:PersonalActions(歡迎選單)、ViewSelectorMenu(視圖切換)。

URL Token 動態參數

Token意義
~site目前站台 (SPWeb) 相對路徑
~sitecollection目前站台集 (SPSite) 相對路徑
{ItemId}列表項整數 ID
{ItemUrl}文件庫項目 URL(Beta 2 無效)
{ListId}列表 GUID
{SiteUrl}站台 URL
{RecurrenceId}週期項目 ID(不可用於 ECB)

部署步驟完整演練

  1. 建立 Feature 目錄:C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\UserInterfaceLightUp
  2. 建立 Feature.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <Feature Id="{GUID}" Title="Light Up" Description="Shows how to light up various UI areas."
      Version="1.0.0.0" Scope="Site" xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="Lightup.xml" />
      </ElementManifests>
    </Feature>
    guidgen.exe 產生 GUID 取代 {GUID}。
  3. 建立 Lightup.xml 定義 11 個 CustomAction(節選關鍵屬性):
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <!-- 文件庫工具列:新建選單 -->
      <CustomAction Id="UILightUp.DocLibNewToolbar" RegistrationType="List" RegistrationId="101"
        GroupId="NewMenu" Rights="ManagePermissions" Location="Microsoft.SharePoint.StandardMenu"
        Sequence="1000" Title="MY DOCLIB NEW MENU TOOLBAR BUTTON">
        <UrlAction Url="/_layouts/LightupHello.aspx?NewMenu" />
      </CustomAction>
      <!-- ... 其餘 10 個 CustomAction 同結構,GroupId/Location/UrlAction 不同 -->
      <CustomAction Id="UILightUp.ECBItemToolbar" RegistrationType="List" RegistrationId="101"
        Type="ECBItem" Location="EditControlBlock" Sequence="106" Title="MY ECB ITEM">
        <UrlAction Url="/_layouts/LightupHello.aspx?ECBItem" />
      </CustomAction>
      <CustomAction Id="UILightUp.SiteSettings" GroupId="Customization"
        Location="Microsoft.SharePoint.SiteSettings" Sequence="106" Title="MY SITE SETTINGS LINK">
        <UrlAction Url="/_layouts/LightupHello.aspx?Customization" />
      </CustomAction>
    </Elements>
  4. 建立 LightupHello.aspx 置於 \TEMPLATE\LAYOUTS,接收 QueryString 顯示來源:
    <%@ Page Language="C#" Inherits="System.Web.UI.Page"%>
    <%
      string q = Page.ClientQueryString;
      if (q == "NewMenu") Response.Write("您來自新建文檔選單。");
      else if (q == "ECBItem") Response.Write("您來自文檔的上下文選單。");
      // ... 其餘判斷
    %>
  5. 命令列安裝與啟用:
    stsadm -o installfeature -filename UserInterfaceLightUp\feature.xml
    stsadm -o activatefeature -filename UserInterfaceLightUp\feature.xml -url https://Server/Site/Subsite
    iisreset

驗證檢查清單

  • 網站動作選單 → 檢視新增按鈕
  • 網站設定頁面 → Customization 區塊新增連結
  • 文件庫工具列 → 新建/上傳/操作/設定四大選單各新增按鈕
  • 文件庫項目 ECB 右鍵選單 → 新增項目
  • 項目顯示/編輯表單工具列 → 新增按鈕
  • 內容類型設定頁面 → General 區塊新增連結

關鍵屬性說明

  • RegistrationType="List" + RegistrationId="101":限定套用至文件庫(範本 ID 101)。
  • Rights="ManagePermissions":僅具備該權限者可見(安全性修飾)。
  • Sequence:同群組內排序,數值越大越靠後。
  • Type="ECBItem":指定為 ECB 項目類型動作。

此演練展示了 Feature 驅動 UI 擴充的完整生命週期:定義 → 部署 → 啟用 → 驗證,為 SharePoint 使用者介面客製化奠定標準範本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved