Ich habe eine benutzerdefinierte Funktion für Sharepoint 2007 mit Visual Studio 2010 erstellt. Wenn ich die Funktion aktiviere, werden natürlich alle Dokumentbibliotheken in der Websitesammlung ausgelöst. kann mir jemand ein Beispiel geben, wie man das Feature in einer bestimmten Dokumentbibliothek/Listeninstanz auslöst.Wie aktiviere ich eine Sharepoint 2007-Funktion für eine bestimmte Dokumentbibliothek?
Antwort
Zuerst werden Sie eine Eventreceiver auf Ihre Funktion und dann in XML hinzufügen, um Ihre Funktion ist ein ReceiverClass hinzuzufügen, wie folgt aus:
<Feature Id="f68efad8-ea0a-42a2-9994-db3b74aa67f8"
Title="My features title"
Description="Blah blah blah"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
ReceiverAssembly="MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4f34f956cd0552b"
ReceiverClass="MyProject.FeatureCode.EventHandler" <!-- This is where you set the EventReceiver -->
xmlns="http://schemas.microsoft.com/sharepoint/">
Eventhandler ist die Eventreceiver wenn Sie Funktion aktiviert ist.
Mein Beispiel
Zunächst, mein Eventreceiver:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
var assembly = typeof(PermissionHandler).Assembly.ToString();
var classList = typeof(PermissionHandler).FullName;
var web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
try
{
var list = web.Lists["MyList"];
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, assembly, classList);
list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assembly, classList);
}
catch (Exception ex)
{
EventLogger.LogError("Sample feature failed to run.", this, ex);
}
}
Im obigen Beispiel I in MyList einige Berechtigungen auf die Elemente hinzufügen möchten. Wie Sie sehen können, mache ich 2 Variablen, die der Typ ist (PermissionHandler), eine öffentliche Klasse, die ich erstellt habe, um die Aufgabe zu erledigen.
Ich habe 5 Einträge zur Liste hinzugefügt, bevor ich diese Funktion aktiviere. Daher möchte ich, dass die bereits vorhandenen Objekte auch die Berechtigungen erhalten, die ich für die neuen Objekte einstelle. Dies ist
, wie ich es tun:
private void updateItemPermissions(SPItemEventProperties properties)
{
DisableEventFiring();
SPListItem listItem = properties.ListItem;
SPSecurity.RunWithElevatedPrivileges(() =>
{
SPSite site = new SPSite(listItem.ParentList.ParentWeb.Site.ID);
SPWeb web = site.OpenWeb(listItem.ParentList.ParentWeb.ID);
SPList list = web.Lists[listItem.ParentList.ID];
SPListItem item = list.Items.GetItemById(properties.ListItem.ID);
item.BreakRoleInheritance(true);
if (item.RoleAssignments.Count > 0)
{
for (var i = item.RoleAssignments.Count - 1; i >= 0; i--)
item.RoleAssignments.Remove(i);
}
var group = item.Web.Site.RootWeb.Groups["Visitors"];
AddPermissions(item, web, SPRoleType.Reader, group);
});
EnableEventFiring();
}
private static void AddPermissions(SPListItem curItem, SPWeb web, SPRoleType roleType, SPPrincipal principal)
{
SPRoleDefinition roleDefinition = web.RoleDefinitions.GetByType(roleType);
SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
curItem.RoleAssignments.Add(roleAssignment);
curItem.Update();
}
Ich hoffe, das hilft Sie :)
- 1. SharePoint-Dokumentbibliothek
- 2. Senden Sie eine E-Mail an Dokumentbibliothek in Sharepoint 2013
- 3. Update-Dateien in SharePoint-Dokumentbibliothek
- 4. Wie aktiviere ich eine Verknüpfung auf Eclipse?
- 5. Kopieren Dokumentbibliothek Sharepoint 2003 gehören Geschichte
- 6. Schaltfläche zum Senden von Rails: Wie aktiviere ich eine Schaltfläche, um eine bestimmte Methode auszuführen?
- 7. Wie laden Sie eine Datei in eine Dokumentbibliothek im Sharepoint hoch?
- 8. Wie aktiviere ich FTS in Xcode für eine iOS App?
- 9. Wie aktiviere ich den Effekt "using" für eine Ansicht?
- 10. Erstellen Sie SharePoint-Webseite außerhalb der Dokumentbibliothek
- 11. Kopieren von Dateien in Dokumentbibliothek in SharePoint
- 12. Erstellen einer benutzerdefinierten Dokumentbibliothek in SharePoint
- 13. Herunterladen von SharePoint Dokumentbibliothek ohne Benutzeranmeldung
- 14. Zend_Db_Table, wie ich für eine bestimmte Spalte
- 15. Sharepoint Dokumentbibliothek als Ziel in SSIS
- 16. Eine Erfolgsmeldung für den Benutzer in einer SharePoint-Dokumentbibliothek nach Validierung in ItemAdding anzeigen Ereignis
- 17. Wie sollte ich eine Hashtabelle für eine bestimmte Population optimieren?
- 18. Wie kann ich eine SharePoint-Warnung nur senden, wenn eine bestimmte Spalte geändert wird?
- 19. Wie benenne ich eine virtuelle SharePoint-Maschine
- 20. Wie lösche/verschiebe ich alte Formulare/Dokumente aus meiner Dokumentbibliothek in Sharepoint?
- 21. Wie Sie eine Entwicklungsumgebung für Sharepoint 2013
- 22. Wie aktiviere ich die Codevervollständigung für Fallanweisungen?
- 23. Wie aktiviere ich eine Google Maps-Schaltfläche in einer Zelle?
- 24. Wie blockiere ich eine bestimmte jabber_id für eine bestimmte Person in Ejabberd?
- 25. Eine bestimmte Maschine für eine bestimmte Zeitspanne des Zeitintervalls blockieren
- 26. Wie aktiviere ich curl für PHP
- 27. Wie aktiviere ich Benachrichtigungen für iOS 10?
- 28. Benutzerdefiniertes Aktionsmenü für bestimmte SharePoint-Listen
- 29. Wie aktiviere ich eine Aktivität, während der Bildschirm ausgeschaltet ist?
- 30. Wie aktiviere ich eine Funktion nach einer bestimmten Zeit?