2011-04-04 68 views
5

我正在將SharePoint與SPServices jQuery庫一起使用,並且我正在使用SPGetCurrentUser函數。但是,它似乎只是返回沒有ID的登錄用戶名。例如:SharePoint 2010使用SPServices獲取用戶ID

DOMAIN\user

我需要整個帳戶名稱與編號:

1;#DOMAIN\user

如果只是返回ID我可以連接兩個在一起的方式。但我找不到它。

最終我試圖給當前用戶分配一個列表項。如果有一種方法可以在沒有身份證的情況下做到這一點,我也會接受這種可能性。謝謝!

回答

14

好吧,我想通了:

$().SPServices({ 
    operation: "GetUserInfo", 
    async: false, 
    userLoginName: $().SPServices.SPGetCurrentUser(), 
    completefunc: function (xData, Status) { 
     $(xData.responseXML).find("User").each(function() { 
      curUserId = $(this).attr("ID"); 
      curUserName = $(this).attr("Name"); 
      curFullUserName = $(this).attr("ID")+";#"+$(this).attr("Name"); 
     }); 
    } 
}); 

這個小功能將創建三個瓦爾:

  • curUserId =當前用戶的ID(例:1)
  • curUserName =當前用戶名稱(例如:DOMAIN \ user)
  • curFullUserName = ID和名稱組合在SP格式(例如:1; #DOMAIN \用戶)

希望它能幫助!

+2

+1 - 這肯定會幫助別人。 – 2011-04-04 20:36:35

+0

我花了數小時試圖實現類似於下面的vvk解決方案。我總是收到一個空白的字符串。在我即將放棄整個事情之前,我發現了這個解決方案。奇蹟般有效!!! – Weston 2014-07-16 19:55:36

0

你可以試試:

$().SPServices.SPGetCurrentUser({ 
     fieldName: "ID" 
    }); 
+0

試過了,我只是得到一個空字符串。 – skinneejoe 2011-04-04 18:28:29

0
$(xData.responseXML).find("PropertyData > Name:contains('Name')").each(function() { 
Name = $(this).parent().find("Values").text(); 
alert(Name); 
}); 

Please click here more details