使用 SharePoint SDK,我试图检索列表并在复合控件中显示内容。该列表是听众知道的,我想将其保持在我的控制之下。我怎样才能使用 SharePoint SDK 获取这个按受众筛选的列表?这是我正在使用的一些代码:
SPWeb currentWeb = SPContext.Current.Site.RootWeb;
SPList shortcuts = currentWeb.Lists["Shortcuts"];
最佳答案
这是我现在正在使用的一些代码,它对我来说不太适用。根据观众的设置方式,我应该得到结果:
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();
}
开启:
if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader, audienceFieldValue, false))
它永远不会返回 true,即使它应该是。
关于sharepoint - 按受众筛选 SharePoint 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466544/