一步步教你在SharePoint站點建立具備分頁、排序、篩選功能的SPGridView Web部件
介紹
SharePoint有一個內置gridview控件,即SPGridView控件。當與一個ObjectDataSources共同使用時,內置支持排序、篩選功能;而且若是SPGridView控件被使用,外觀會很類似。這也是SPGridView使用超過ASP.NET GridView控件的緣由。
下面是本樣本提供的功能:
1. 建立SPGridView Web部件;
2. 分頁的不一樣模型;
3. 排序;
4. 篩選。
這是本文最重要達成的目標:
如何使用代碼
解壓縮源代碼SPGridViewWebpart,解決方案包括:
1. SPGridViewWebpartClass.cs:包含SPGridview(可分頁排序和篩選)的Web部件。
2. DataTableWrapper.cs:ObjectDataSource,返回DataRow。爲了返回一個Datatable並與這個數據表綁定SPGridView,這個類像一個包裝器。
3. SmartPager.cs:分頁模型。
4. XofYPager.cs:分頁模型。
生成這個解決方案,並在GAC中不熟DLL,並添加Web部件到SharePoint站點。
步驟以下。
建立Web部件
1.以管理員身份打開VS,新建項目,選擇類庫模板。
2. 右擊引用選擇添加引用。
3. 從.NET中選擇Windows SharePoint Services和System.Web,點擊肯定。
4. 添加全部類文件。即SPGridViewWebpartClass.cs,DataTableWrapper.cs,DataTableWrapper.cs和XofYPager.cs文件到項目中。
在運行時建立Datatable
建立帶有列Title、Status、Description的Datatable並填充數據。這裏填充一些樣本數據表如TitleA,StatusA,DescriptionA等等。
分頁
在gridview控件中啓用分頁,並定義頁面大小爲5.
不一樣類型的分頁顯示
使用下面任何一個分頁模型,並註釋掉其餘模型的代碼。
默認分頁
咱們假設總共50條記錄,而後顯示方式:1 2 3 4 5 6 7 8 9 10.
第一個分頁模型
第一頁顯示1 of 10,第二頁顯示2 of 10等。
第二個分頁模型
第三個分頁模型
排序代碼
在girdview控件中啓用排序。排序在DataTable的全部列上啓用,即Title、Status和Description。
篩選代碼
篩選在DataTable的全部列上啓用,即Title、Status和Description。
部署Web部件
1. 建立Strong name key。
a. 右擊Web部件項目,進入屬性。
b. 選擇singing選項卡。
c. 選中Sign the assembly複選框。
d. 從下拉列表中選擇新建,建立Strong Name Key窗口打開。
e. 清除「Protect my Keyfile with a password」,在「Key File Name」文本框中輸入名稱,點擊肯定。
參考下面截圖:
2. 生成解決方案。
3. 在GAC中拖拽放置Web部件DLL(開始中輸入assembly,運行直接打開Assembly文件夾)。
4. 添加Safe Control tag到SharePoint Installation Drive\Inetpub\wwwroot\wss\VirtualDirectories\[Site Port No.]\web.config這個路徑的web.config文件。
注意:兩種方式得到Public Key Token:
1. 從Assembly文件夾,右擊DLL,進入屬性複製Public Key Token值。
2. 使用Lutz Reflector。
5. 執行iisreset。
添加Web部件到Web部件庫
1. 導航到網站。
2. 網站操做--網站設置--Web部件--Web部件庫。
3. 點擊新建按鈕。從列表中選擇部署的Web部件,點擊Populated Gallery按鈕。
4. 若是We部件已經存在,選中「若是文件存在則覆蓋」複選框,點擊「Populated Gallery」按鈕。
在站點首頁使用Web部件
1. 導航到站點首頁。
2. 網站操做--編輯頁面。
3. 點擊「添加Web部件」。
4. 在Miscellaneous部分,選擇以前部署的Web部件,點擊「添加」按鈕。
5. 點擊退出編輯模式。
如今SPGridView Web部件顯示出來,具備分頁、排序和篩選功能。和SharePoint站點外觀類似。所以不使用ASP.NET GridView控件,而是用SPGridView控件。
調試Web部件