當我評估SharePoint列表的'User'類型的自定義字段時,我希望只獲取用戶名,但在開始時我會看到更多字符,我需要修剪掉。這些額外的字符來自用戶的配置文件名稱?
SPContext.Current.ListItem[NameOfUserField]
有
值「14; #DeeMac」
而作爲一個側面說明 - 這個領域被視爲一個字符串 - 但在我的XML文件,我把它定義爲一個'用戶'字段類型 - 在哪裏以及爲什麼進行了此轉換?我最初嘗試將它作爲SPFieldUser
失敗。
當我評估SharePoint列表的'User'類型的自定義字段時,我希望只獲取用戶名,但在開始時我會看到更多字符,我需要修剪掉。這些額外的字符來自用戶的配置文件名稱?
SPContext.Current.ListItem[NameOfUserField]
有
值「14; #DeeMac」
而作爲一個側面說明 - 這個領域被視爲一個字符串 - 但在我的XML文件,我把它定義爲一個'用戶'字段類型 - 在哪裏以及爲什麼進行了此轉換?我最初嘗試將它作爲SPFieldUser
失敗。
該字符串的第一部分是該用戶的標識SPWeb
中的問題。即大致來說,DeeMac是第14位使用該網絡的人。
爲了從string
中獲得SPUser
對象,您需要取用戶所屬的SPWeb
,並使用這兩個構造函數調用SPFieldUserValue(SPWeb, string)
構造函數。
如此構建的SPFieldUserValue
包含SPUser
類型的User
屬性,如果字符串爲空/空,則該屬性可能爲空。
請注意,有時,我認爲用戶列可能實際上包含SPFieldUserValue
對象,而不是string
s。
此外,如果它是一個多用戶列,也可能包含SPFieldUserValueCollection
對象或string
通到是類的constructor。
如果遇到問題,請調試並檢查列中的實際內容。
其他用戶名字符串是什麼樣的? –
您通常會希望在用戶名前面看到一個AD域名嗎?不是建議我知道答案btw ...只是我想知道在這方面是否有奇怪的事情發生,可能會讓你知道發生了什麼。 – Sepster
通常不是,這似乎是從用戶到字符串的某處進行的轉換。我想我會刪除這個問題說實話 - 我已經找到了一個解決方案,以解決我如何正確地詢問用戶字段的原始問題:http://sharepoint.stackexchange.com/questions/32017/how-to-read-an-user-field-value-for-a-list-item/32023#32023 –