1、新建解決方案以及SharePoint項目,步驟比較簡單略過,然后映射CONTROLTEMPLATES文件夾,在里面添加用戶控件(僅場解決方案),如下圖:
2、解決方案結構,如下圖:
簡單介紹一下,部署以后dll會到GAC,ascx控件會部署到CONTROLTEMPLATES文件夾下面,不要問我這個文件夾物理路徑在哪哦~~
3、在前台的ascx文件里添加控件,如下圖:
這樣的開發場景,和asp.net是不是很像?沒錯,前台可以設計好布局,然后在后台添加相應代碼就可以了,這里只是一個簡單demo(讀取頁面庫內容);
4、在后台cs文件中添加代碼,btn的click事件里添加我們需要的代碼:
5、添加代碼附,如下:
protected void btn_GetListItem_Click(object sender, EventArgs e) { StringBuilder Items = new StringBuilder(); using (SPSite site = new SPSite(SPContext.Current.Site.ID)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["頁面"]; int i = 1; foreach (SPListItem item in list.Items) { Items.Append("條目 -- " + i.ToString()); Items.Append("標題:" + item["Title"].ToString()); Items.Append("</br>"); Items.Append("地址:" + item.File.Url); Items.Append("</br></br>"); } } } lb_ListItem.Text = Items.ToString(); }
6、添加代碼以后,部署解決方案,ascx文件部署后如下圖位置:
7、dll文件部署的位置,如下圖:
8、簡單介紹下部署的位置
Dll的位置,特別要說的是,SharePoint 2013的Dll由於FrameWork版本的問題,部署在如下位置了:
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\SP2013CustomUserControl\v4.0_1.0.0.0__254789ed6746c3c6
Ascx位置:
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES
9、在頁面的頭部注冊
10、在PlaceHolderMain里添加我們的部件
11、查看頁面中的效果,如下圖:
12、點擊GetListItem以后效果,如下圖:
由於只是一個demo作為演示,只是簡單讀取了頁面庫中的頁面信息,包括標題和頁面的Url地址,效果如下:
總 結
以上就是SharePoint中用戶控件使用的簡單介紹,或許有人會說,這個和WebPart不是一樣么?其實,用戶控件和WebPart本身就很類似,但是使用不僅僅這一種場景,我們可以把用戶控件添加到頁面中,添加到母版頁中,甚至於添加到SharePoint Layouts目錄下發布的應用程序頁面中,都是可以的。
用戶控件和WebPart很類似,但是應用場景還是有所區別的,至少我感覺用戶控件偏向開發人員使用,用於不常修改的功能;WebPart偏實施人員使用,更多的帶有配置信息,更加靈活多變。
好了,用戶控件的介紹就到這里了,希望能夠帶給需要的人以幫助,謝謝!










