4 Stimmen

Kann das Zielpublikum eines SharePoint-Listenelements berechnet oder anderweitig automatisch festgelegt werden?

Ich möchte den Nutzern gezielte (gefilterte) Inhalte aus einer Liste zeigen. Ich habe bereits eine Spalte in der Liste, die im Wesentlichen den Wert "Zielgruppe" enthält. Dieses Feld ist eine Multi-Choice-Spalte (Checkbox-Eingabe), die ich dem aktuellen Eingabefeld für Zielgruppen vorziehe.

Damit die Zielgruppenfilterung funktioniert, muss ich leider für jedes Listenelement das Feld Zielpublikum ausfüllen. Mein derzeitiger Plan ist es, einen einfachen SharePoint-Designer-Workflow zu verwenden, um das Feld Targeted Audiences auf der Grundlage meines anderen Feldes festzulegen, aber ich frage mich, ob es einen besseren Weg gibt. Sehe ich das einfach falsch?

Ich weiß, dass Audiences auch zum Ein- und Ausblenden von Webparts verwendet werden können, aber das ist nicht etwas, was mich interessiert.

0 Stimmen

Möchten Sie, dass verschiedene Benutzer unterschiedliche Ansichten der gleichen Liste haben? Oder ist die Zielsetzung für die gesamte Liste festgelegt?

0 Stimmen

Ich möchte, dass verschiedene Benutzer (eigentlich Gruppen von Benutzern - Audiences) verschiedene Ansichten (Filter) derselben Liste haben.

4voto

Steve Ruiz Punkte 259

Versuchen Sie es doch einfach mal...

SPField audienceField = null;

try
{
    audienceField = list.Fields[Microsoft.SharePoint.Publishing.FieldId.AudienceTargeting]
}
catch
{}

if(audienceField != null)
{
try
{
    Audience siteAudience;
    ServerContext context = ServerContext.GetContext(site);
    AudienceManager audManager = new AudienceManager(context);
    foreach (SPListItem item in list.Items)
    {
      string audienceName = item["fakeAudienceField"]; //should be the audience name created in SSP
      siteAudience = audManager.GetAudience(audienceName);
      Guid id = siteAudience.AudienceID;
      item["Target Audiences"] = id.ToString()+";;;;";
      item.Update();
    }
}
catch
{}

0voto

salgo60 Punkte 957

Vielleicht ein Webpart verwenden, um den Inhalt der Liste anzuzeigen und Audiences auf dem Webpart zu verwenden, klingt nach einer Lösung, die einfacher zu verwalten ist...

0 Stimmen

Soll das heißen, dass Sie einen benutzerdefinierten Webpart verwenden sollen? Das könnte sicherlich funktionieren, ist aber nicht die Antwort, die ich mir erhofft habe. Meine Hoffnung ist, dass ich einfach nicht verstehen, Publikum genug und es gibt einige einfache Einstellung, die ich vermisse.

0 Stimmen

Ich sehe Audiencies nur, um auf einem Objekt zu markieren, ob es sichtbar ist oder nicht. Kombiniert mit den Berechtigungseinstellungen kann das, was angezeigt wird, auf verschiedene Benutzergruppen eingeschränkt werden... Ich habe in einem anderen Thema von guten Implementierungen eines Ausblendens und Zeigens von Menüpunkten abhängig vom Status eines Elements/Mitglieds von Audiencies gefragt

0voto

dahlbyk Punkte 71222

Ich glaube nicht, dass Target Audiences als berechnetes Feld eingerichtet werden können. In diesem Fall haben Sie die Wahl zwischen einem Workflow oder einem Ereignisempfänger für Listenelemente.

Um den Wert des Zielgruppenfelds festzulegen, können Sie Folgendes verwenden AudienceManager.GetAudienceIDsAsText Gary Lapointe hat eine Beitrag mit Anwendungsbeispiel .

0 Stimmen

Danke - das scheint die beste Wahl zu sein, die mir zur Verfügung steht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X