按受众筛选SharePoint列表

Chr*_*art 3 sharepoint

使用SharePoint SDK,我正在尝试检索列表并在复合控件中显示内容.该列表是受众了解的,我想在我的控制下保持这一点.如何使用SharePoint SDK获取此列表(按受众筛选)?这是我正在使用的一些代码:

SPWeb currentWeb = SPContext.Current.Site.RootWeb;
SPList shortcuts = currentWeb.Lists["Shortcuts"];
Run Code Online (Sandbox Code Playgroud)

Chr*_*art 6

这是我现在使用的一些代码,它对我来说并不适用.根据观众的设置方式,我应该得到结果:

protected override void CreateChildControls()
{
dropdown = new DropDownList();
dropdown.Items.Add(new ListItem("Select...", ""));

SPWeb currentWeb = SPContext.Current.Site.RootWeb;
SPList shortcuts = currentWeb.Lists["Shortcuts"];

ServerContext context = ServerContext.GetContext(currentWeb.Site);
AudienceManager audManager = new AudienceManager(context);
AudienceCollection audiences = audManager.Audiences;
AudienceLoader audienceLoader = AudienceLoader.GetAudienceLoader();

foreach (SPListItem listItem in shortcuts.Items)
{
    string audienceFieldValue = (string)listItem["Target Audiences"];

    if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader, audienceFieldValue, false))
    {
        dropdown.Items.Add(new ListItem(listItem.Title, listItem.Url));
    }
}

Controls.Add(dropdown);
base.CreateChildControls();
}
Run Code Online (Sandbox Code Playgroud)

上:

if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader, audienceFieldValue, false))
Run Code Online (Sandbox Code Playgroud)

它永远不会回归真实,即使应该如此.