2011年6月1日 星期三

How to use SharePoint 2010 PeopleEditor [People Picker] in WebPart (如何在WebPart中使用SharePoint 2010的PeopleEditor控制項來取得使用者資料)

在SharePoint 2010 中或是要取得使用者資料,最好用的方式就是使用預設的People Picker控制項來挑選使用者,而ㄧ般來說People Picker是搭配People Editor 一起使用的,先來看看People Editor和People Picker:

People Editor:由一個TextBox加上兩個Button組成,一個Button用來檢核使用者名稱是否正確,一個用來叫用
People Picker控制項PeoplePicker-1

People Picker:當點選了People Editor右下角的圖示,則會彈跳出People Picker控制項以方便挑選使用者
PeoplePicker-2

那麼該如何在自行開發的WebPart上使用這兩個既有的控制項,以下亞當斯就帶各位來實作其設計步驟:

  1. 先建立一個Visual WebPart專案命名為:PPWebPartProject,並加入一個Visual WebPart命名為 : UsePeopleEditor
  2. 在UsePeopleEditor.ascx中先加入Microsoft.SharePoint.WebControls的宣告指示詞,如下所示:
    <%@ Register Tagprefix="msw" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  3. 接著加入PeopleEditor 控制項以及相關ASP.NET控制項
  4. <msw:PeopleEditor AllowEmpty="false" ValidatorEnabled="true"
         id="userPicker" runat="server" ShowCreateButtonInActiveDirectoryAccountCreationMode="true"
         SelectionSet="User" />
    <asp:Button ID="Button1" runat="server" Text="Save PPName" />
    <br />
    <asp:ListBox ID="ListBox1" runat="server" Rows="5" Width="150px"></asp:ListBox>
    <asp:ListBox ID="ListBox2" runat="server" Rows="5" Width="150px"></asp:ListBox>
    PeoplePicker-3

  5. 在UsePeopleEditorUserControl.ascx.designer.cs中確定已加入PeopleEditor 控制項的宣告
    PeoplePicker-4
  6. 回到畫面,按下按鈕觸發Click事件,並加入擷取使用者資料的程式碼,程式碼如下:
    PeoplePicker-5
  7. 這邊分別取Description和DisplayText屬性,主要是因為這兩個屬性取出來的資料是不同的,例如
    Description取出來的值為:Domain\adams , 而DisplayText取出來的值為:Adams Chao
  8. 將WebPart部署到SPS網站上執行測試,先使用PeopleEditor 挑選使用者PeoplePicker-6
  9. 接著按下Save PPName按鈕將資料丟入ListBox中呈現
    PeoplePicker-8

以上幾個步驟就可以輕易的在你的WebPart中或是自訂的Page中使用People Editor 控制項,並運用既有的機制擷取使用者的帳號資料。

沒有留言: