SharePoint 添加ECB菜單


  前言:在SharePoint中,我們常見的操作就是添加我們的自定義ECB菜單,下面,簡單介紹下添加自定義BCD菜單的操作。主要介紹兩種熟悉的方法,一種通過xml方式,另一種是通過js的方式。

  環境SharePoint 2010 Server,理論上2007和2013也會支持,不過我沒有進行測試。

方法一、通過Xml方式(圖比較多,不過我不是貼圖黨)

1、 新建一個空的項目,如下圖。

clip_image001

2、選擇場的解決方案,測試地址選擇你需要的測試地址即可。

clip_image002

3、在Features上面,右鍵添加新的Feature,用於我們的Xml文件。

clip_image003

4、修改我們Feature的名字,說明和范圍等Feature的屬性,方便以后我們進行操作。

clip_image004

5、添加一個空元素,用來添寫我們的xml。

clip_image005

6、添加我們的xml文件,注意ID為Guid,最好重新生成一個。

clip_image006

7、Xml文件格式,如下。

<?xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<CustomAction Id="{16d0fc49-3039-40ea-a887-d05a7ff9bb21}"

RegistrationId="101"

RegistrationType="List"

Location="EditControlBlock"

Title="測試BCD菜單"

GroupId="ActionsMenu"

Sequence="100" ImageUrl="/_layouts/images/DOC16.gif">

<UrlAction Url="{SiteUrl}/_layouts/Viewlsts.aspx"/>

</CustomAction>

</Elements>

8、Xml項添加到Feature中去,這個添加了xml以后會自動添加到Feature中,我想說的是Feature激活xml功能的原理。

clip_image007

9、部署我們寫好的解決方案到測試站點,SharePoint 2010中的VS會自動激活這個解決方案。

clip_image008

10、去網站功能,看看我們部署的Feature,已經被激活了。因為我們是web范圍的,所以是網站功能中;可以試試site范圍的,就需要去網站集功能里面看看了。

clip_image009

11、看看我們添加ECB菜單的效果

clip_image010

方法二 通過JS腳本的方式。

1、通過spd打開我們需要擴展ECB菜單的頁面,添加我們寫好的js,最后在介紹這樣操作的原理

clip_image011

2、js文件如下,當然,js操作不僅僅可以完成現在這樣的單級菜單,還可以完成二級菜單等,有需要的可以查找相關資料自己研究下。

<script language="javascript">

function Custom_AddListMenuItems(m, ctx)

{

strDisplayText = "百度首頁";

strAction = "STSNavigate('http://www.baidu.com')";

strImagePath=ctx.imagesPath+"oisweb.gif";

menuOption = CAMOpt(m,strDisplayText,strAction,strImagePath);

menuOption.id = "ID_MyMenu";

return false;

}

</script>

3、看看我們添加js文件后的效果(我不是百度的廣告貼,只是習慣這樣,⊙﹏⊙b汗)點擊以后會連接到百度首頁。

clip_image012

4、原理介紹:其實sharepoint本身的ECB菜單,就是通過js腳本實現的,有興趣的可以打開下圖所示位置,layouts/2052(中文版位置)下的core.js文件,sharepoint 的ECB菜單,就是調用下面js里面的方法,我們也依照SharePoint的模式,去調用下面的方法即可完成我們想要的效果。

clip_image013

  總結:我們完成一件事兒,可以有很多方法,相對來說,第一種方法批量添加Library菜單比較方便,而第二種方法,更靈活,也適合單獨列表的個性化定制。當然,介紹的內容比較簡單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM