2010-01-08 56 views
1

我正在嘗試以編程方式設置列表項目上的「目標受衆」字段。我已經能夠爲一位受衆以編程方式設置值,但是當我嘗試使用多個受衆羣體時,SharePoint會嘗試將我設置的值視爲單個受衆而不是多個受衆。我使用下面的代碼設置值。在列表項目中設置具有多個值的「目標受衆」字段

listItem[listItem.Fields["Target Audiences"].InternalName] = "Audience One"; 

我使用此代碼指定多個觀衆,像這樣:

listItem[listItem.Fields["Target Audiences"].InternalName] = "Audience One; Audience Two"; 

當我這樣做時,SharePoint試圖解釋整個字符串作爲一個觀衆,當我修改我得到一個消息"No exact match was found."

我是否使用正確的格式來指定該字段的多個受衆羣體,或者是否有類似SPFieldLookupValue的課程?

+0

凱爾,你可以發佈你的最終解決方案是什麼?我面臨着和你一樣的問題。 – 2010-06-29 05:11:57

+0

你可以發表你的最終解決方案嗎? – Unknown 2016-12-07 15:15:15

回答

0

剛剛意識到我再也沒有回來,並回答了這個。

我最終將每個列表項中附加的列的名稱存儲在每個列表項中,然後查詢對象模型以查看當前用戶是否是這些受衆的成員。這對我很有幫助,因爲我是從自定義Web部件中的列表項中提取數據的,並且用戶從未看到過實際的列表項。

0

我不知道如何在SPListItem中保存多個受衆,但是如果我遇到了這個問題,我會嘗試從PowerShell腳本中打印出該字段的值。喜歡的東西:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint"); 
$site = Microsoft.SharePoint.SPSite("http://yourserver"); 
$web = $site.openweb(); 
$list = $web.lists["YourList"]; 
$item = $list.getitembyid(itemid); 
write-output $item["Target Audiences"]; 

編輯:發現什麼觀衆字段值實際上是一些信息:http://dotnetmafia.sys-con.com/node/1181567/mobile

+0

我做到了,腳本的值是這種格式:GUID,GUID,GUID ;;;;; (每個用戶逗號分隔的一個GUID ID,後面跟着4個分號)。當我使用該格式設置字段,然後在編輯模式下查看字段時,它包含輸入的確切文本(guid,後跟4個分號) – 2010-01-09 16:01:35

+0

換句話說:Sharepoint沒有對設置爲該字段的值進行任何翻譯。 – 2010-01-09 16:02:08

+0

我想,你也應該閱讀這篇文章:http://dotnetmafia.sys-con.com/node/1181567/mobile – naivists 2010-01-09 17:47:41

相關問題