2013-02-08 56 views
-1

我正在開發將項目添加到SharePoint 2010自定義列表的自定義表單。在我add.aspx網站我使用下面的Web控件:自定義Sharepoint 2010表單中的PeopleEditor控件無法正常工作

<SharePoint:UserField runat="server" ID="Workers" ControlMode="New" FieldName="Workers"/> 

<SharePoint:PeopleEditor runat="server" ID="Managers" ControlMode="New" FieldName="Managers"/> 

你可以看到它們連接到一個列表上的特定字段:

<Field ID="{1EE0732A-FDD7-4128-A112-BE136DB948D9}" Name="Workers" DisplayName="Workers" Type="UserMulti" Required="TRUE" Mult="TRUE"/> 

<Field ID="{1A499D66-B23B-40E4-8306-AF40F9081729}" Name="Managers" DisplayName="Managers" Type="UserMulti" Required="TRUE" Mult="TRUE"/> 

的問題是,之後,我完成我的形式並點擊保存按鈕,新項目出現在列表中,但只有工作人員領域實現。爲什麼它不適用於PeopleEditor控件(microsoft.sharepoint.webcontrols.peopleeditor)?我真的希望有這個工作,因爲它有帳戶集合,其中包含所有域的用戶在哪裏把這個控制。如何使它工作或如何從Microsoft.SharePoint.WebControls.PeopleEditor獲得這樣的集合?我需要以某種方式讓這些值在「保存」點擊事件上執行服務器端驗證。

順便說一句。有什麼地方的網站控制使用每種字段類型的信息? 即:
的SharePoint:RadioButtonChoiceField - 選擇
的SharePoint:文本字段 - 文本
的SharePoint:BooleanField - 布爾

+0

你有沒有考慮使用InfoPath這種形式?它會根據列類型爲您做很多這項工作。 – 2013-02-08 23:08:38

+0

不幸的是,我沒有InfoPath的許可證...使用試用版也是不可能的,謝謝。 – user1708217 2013-02-09 10:09:13

回答

0

嘗試使用FormField將採取默認控件模板適合你,如果你有一個自定義字段它也將採用自定義控件。

<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" ControlMode="New" /> 

編輯:在回答您的意見,這裏是解析用戶字段值的正確方法是:

private void ProcessUsers(SPListItem item, string fieldName) 
{ 
    string fieldValue = item[fieldName] as string; 
    SPFieldUserValueCollection users = new SPFieldUserValueCollection(item.Web, fieldValue); 

    foreach(SPFieldUserValue uv in users) 
    { 
    SPUser user = uv.User; 
    // Process user 
    } 
+0

然後在保存按鈕單擊事件後面的代碼中獲取fldTitle Web控件的值,並用分號分隔以檢索域\ uid數組?這可能是一個解決方案。有點討厭,但...也許有人知道如何從代碼背後的Microsoft.SharePoint.WebControls.UserField網頁控制獲取域\ uid集合?或者讓它與PeopleEditor一起工作,因爲它在問題描述中被問到了? – user1708217 2013-02-09 10:06:53

+1

不,只需存儲該值而不更改任何內容。 – 2013-02-09 15:18:17

+0

但我需要有關於用戶輸入的一些特定信息,所以我必須在代碼後面進行拆分並獲取關於它們每個的信息。 – user1708217 2013-02-09 22:09:27

相關問題