SharePoint-WebPart中動態選擇網站和列表

來源:互聯網
上載者:User

在剛接觸SharePoint的WebPart開發時,如果實現過程中需要指定一個網站或列表時,常見的實現方式

是建立對應的屬性用以儲存網站或列表的設定。

但是,這種實現方式不人性化,而且容易出錯。試想一下:在一個大點的網站中,誰會記得某個列表的名稱呢?

如果,我們能夠給出一個網站的下拉式清單或可用列表的下拉式清單以供選擇,這樣不是很好?

----

在我的開發過程中,我使用EditorPart來達到這種實現效果《使用一般ASP.NET 控制項開發中的ControlDesigner應該也可以

實現,但我沒有實驗過》,EditorPart的原理及實現方式大家可以在園子裡搜搜。

----

實現了動態選擇後,在需要使用該效果的webpart中,只需要重寫其CreateEditorParts方法,並在其中加入實現該效果的EditorPart即可,比如:

Code
 1//大體樣本如下:
 2//因為在家裡私人電腦上《無相關環境》寫例子,完全憑想像
 3//因此,不敢保證某些變數、方法名、參數名正確。
 4//但方式完全正確。
 5public override EditorParts CreateEditorParts()
 6{
 7   List<EditorPart> newParts=new List<EditorPart>();
 8   WebAndSingleListSelectEditorPart part1=new WebAndSingleListSelectEditorPart(this);
 9   part1.InitListTemplateTypes(SPListTemplateType.Links,SPListTemplateType.DocumentLibrary); //初始化需要選擇的清單類型
10   //還可以指定WebPart中存放WebID和被選擇的列表名的屬性
11   //使用方式在代碼中有相關注釋
12   part1.ID="****";
13   part1.Title="單網站單列表選擇地區";
14   newParts.Add(part1);
15   ----可以加入多個其它的EditorParts
16   EditorParts existParts=base.CreateEditorParts();
17   return new EditorParts(existParts,newParts);
18}
19

 

這樣就可以動態選擇網站和列表。

在我提供的包裡,提供了兩種效果

1、單網站、單列表選擇:也就是通過該EditorPart可以選擇一個網站,以及該網站下的某個列表,並存放網站ID和列表名到對應的WebPart的對應屬性中。(可以在聲明EditorParts時通過建構函式或執行個體屬性指定對應的屬性名稱)。
EditorPart名為:WebAndSingleListSelectEditorPart

2、單網站選擇:也就是通過該EditorPart可以選擇一個網站,並存放網站ID到對應WebPart的對應屬性中。
EditorPart名為:SingleWebSelectEditorPart

兩個效果都使用到了一個反射工具類(ReflectionUtility),一同提供在了包中。

單網站、多列表選擇的效果就不提供了

^_^因為該效果我也沒寫,而且使用情境比較少。

-----

歡迎大家下載試用,並給出相應的改進及指正。

McJeremy&Xu原創,歡迎轉載,但請保留http://www.cnblogs.com/McJeremy地址說明。

源碼下載:/Files/McJeremy/EditorParts.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.