使用SharePoint SDK,我正在尝试检索列表并在复合控件中显示内容.该列表是受众了解的,我想在我的控制下保持这一点.如何使用SharePoint SDK获取此列表(按受众筛选)?这是我正在使用的一些代码:
SPWeb currentWeb = SPContext.Current.Site.RootWeb;
SPList shortcuts = currentWeb.Lists["Shortcuts"];
Run Code Online (Sandbox Code Playgroud)
这是我现在使用的一些代码,它对我来说并不适用.根据观众的设置方式,我应该得到结果:
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)
它永远不会回归真实,即使应该如此.
| 归档时间: |
|
| 查看次数: |
3160 次 |
| 最近记录: |