2012-09-13 28 views
1

當我評估SharePoint列表的'User'類型的自定義字段時,我希望只獲取用戶名,但在開始時我會看到更多字符,我需要修剪掉。這些額外的字符來自用戶的配置文件名稱?

SPContext.Current.ListItem[NameOfUserField]

值「14; #DeeMac」

而作爲一個側面說明 - 這個領域被視爲一個字符串 - 但在我的XML文件,我把它定義爲一個'用戶'字段類型 - 在哪裏以及爲什麼進行了此轉換?我最初嘗試將它作爲SPFieldUser失敗。

+1

其他用戶名字符串是什麼樣的? –

+0

您通常會希望在用戶名前面看到一個AD域名嗎?不是建議我知道答案btw ...只是我想知道在這方面是否有奇怪的事情發生,可能會讓你知道發生了什麼。 – Sepster

+0

通常不是,這似乎是從用戶到字符串的某處進行的轉換。我想我會刪除這個問題說實話 - 我已經找到了一個解決方案,以解決我如何正確地詢問用戶字段的原始問題:http://sharepoint.stackexchange.com/questions/32017/how-to-read-an-user-field-value-for-a-list-item/32023#32023 –

回答

2

該字符串的第一部分是該用戶的標識SPWeb中的問題。即大致來說,DeeMac是第14位使用該網絡的人。

爲了從string中獲得SPUser對象,您需要取用戶所屬的SPWeb,並使用這兩個構造函數調用SPFieldUserValue(SPWeb, string)構造函數。

如此構建的SPFieldUserValue包含SPUser類型的User屬性,如果字符串爲空/空,則該屬性可能爲空。

請注意,有時,我認爲用戶列可能實際上包含SPFieldUserValue對象,而不是string s。

此外,如果它是一個多用戶列,也可能包含SPFieldUserValueCollection對象或string通到類的constructor

如果遇到問題,請調試並檢查列中的實際內容。

相關問題