2009-03-20 6 views
0

Ich teste derzeit die Vorlage für mehrseitige Besprechungsarbeitsbereiche, um zu überprüfen, ob sie unseren Anforderungen als Basisvorlage für unsere Projekte entspricht. Wie Sie vielleicht wissen, wurde ein mehrseitiger Besprechungsarbeitsbereich entwickelt, um mehrere Daten in einem Arbeitsbereich verwalten zu können und Seiten anzuzeigen, die sich nur auf ein bestimmtes Datum oder Seiten beziehen, die an jedem Datum angezeigt werden sollten.Rufen Sie die Seiten eines mehrseitigen Besprechungsarbeitsbereichs ab

Wenn Sie einen mehrseitigen Besprechungsarbeitsbereich mit SharePoint Designer untersuchen, können Sie sehen, dass eine Bibliothek vorhanden ist, die alle Seiten des Arbeitsbereichs enthält. Seiten, die an jedem Datum angezeigt werden, werden im Stammordner gespeichert. Seiten, die nur an einzelnen Daten angezeigt werden, werden in Ordnern gespeichert, die mit dem entsprechenden Datum benannt sind.

So jetzt kommen wir zu meinem Problem. Um die Berechtigung für eine einzelne Seite festzulegen, die an jedem Datum angezeigt wird, iteriere ich über die Seitenbibliothek, um die Seite zu finden, für die ich die Berechtigungen ändern möchte. Seltsamerweise gibt die ListItemCollection der Bibliothek vor, die Anzahl der Seiten zu enthalten, von denen ich erwartete, dass sie darin enthalten ist. Aber wenn ich dann über die Sammlung iteriere, gibt es nur die Seiten zurück, die an das tatsächliche Datum angehängt sind. Es gibt weder die Seiten zurück, die an jedem Datum angezeigt werden sollen, noch die Seiten für die anderen Daten.

Ich habe bereits versucht, die Seiten mithilfe von SPSecurity.RunWithElevatedPrivilges() und mit Identitätswechsel als Systemkonto zu erhalten. Ich habe auch versucht, sie über eine Befehlszeilenanwendung ohne Verwendung von Kontextinformationen zu erhalten. Es scheint als ob das Verhalten, dass Sie nur die Elemente erhalten können, die sich auf ein bestimmtes Datum beziehen, auch vom Objektmodell gefolgt wird.

Also wie könnte ich alle Seiten eines Multipages Meeting-Arbeitsbereich unabhängig vom tatsächlichen Datum bekommen ???

Antwort

0

Die Seiten für diese Art von Ereignissen werden nur erstellt, wenn ein Benutzer versucht, auf sie zuzugreifen. Dies ist von Entwurf, und die einzige Lösung, die ich fand, war zu versuchen, auf die Seite über die Website (oder eine Emulation) zuzugreifen und dann versuchen, auf sie per Code zuzugreifen.

In Bezug auf Flos Kommentar, finde ich die Quelle dafür auf Microsoft Sharepoint 2007 Entwicklung entfesselt (Sams, ISBN 0-672-32903-4). auf S. 101, sagt:

VORSICHT

Daten von Besprechungsserien Beschaffung schwierig sein kann. Sie können auf Situationen stoßen, in denen Ihr Code versucht, auf ein Listenelement für eine Besprechung zuzugreifen Vorkommen, das noch nicht in der Meeting Series Liste bereitgestellt wurde. Um sicherzustellen, dass die einzelnen Instanz erstellt wurde, können Sie machen eine Dummy-Web-Anfrage an die Instanz Homepage, zum Beispiel: http://server/sites/mymeeting/default.aspx?InstanceID=20061012

Wenn Sie einen anderen Weg finden, bitte schreiben Sie uns retten viel Mühe !!!

+0

Mh, ich kann mir nicht vorstellen, dass dies wirklich das einzige ist Möglichkeit, auf diese Dateien zugreifen zu können. – Flo

+0

Flo, ich habe gerade meine Antwort bearbeitet und die Quelle für meine Aussage hinzugefügt. Nicolas. –

+0

Puh, das ist wirklich ein bisschen schockierend. ;) Ich werde meinen Beitrag aktualisieren, wenn ich einen anderen Weg finde. – Flo

1

Sie können ein Ereignis zum Zeitpunkt der Erstellung des Arbeitsbereichs abfangen und programmgesteuert Berechtigungen für das Ereignis festlegen. Vielleicht möchten Sie mehr über event receivers oder setting permissions programmatically wissen.

Diese Seiten erwähnen Sie Elemente sind zu einer Liste hinzugefügt namens "Meeting Series" alt text http://img22.imageshack.us/img22/8963/ss20090528181724.png

Es enthält folgende Felder:

alt text http://img22.imageshack.us/img22/351/ss20090528181819.pngalt text http://img22.imageshack.us/img22/7857/ss20090528181852.png

Beispiel Daten von 1 Artikel (nicht in tun bestellen wie Spalten genannt werden):

3 0x001C4383A41E441842A2A27CA249FED28F Meeting Series Recurrence 2009-05-28 18:11:20 2009-05-28 18:11:12 1073741823;#Sistēmas konts 1073741823;#Sistēmas konts 1 1 512 1.0 0 0 Recurrence Recurrence 3 100.000000000000 {A6E54DB5-3A60-464B-A9A0-D314B49C41E8} 3;#test2/Recurrence/Lists/Meeting Series/1_2.000 3;#test2/Recurrence/Lists/Meeting Series 3;#2009-05-28 18:11:20 3;#2009-05-28 18:11:20 3;#0 0x7fffffffffffffff 3;#1_2.000 3;#{6BE299E5-E81F-40A8-80B2-41494DF0353C} 3;# 3;#{965D0DB3-1AE0-4C23-B006-FB4FC1FE1AB7} 1_2.000 3 1_2.000 1_2.000 /test2/Recurrence/Lists/Meeting Series/1_2.000 http://test:10000/test2/Recurrence/Lists/Meeting%20Series/1_2.000 1_2 3;# 1 1 2 {D8839339-6DDA-48A6-B3B7-FBCA58C8B436} 2009-06-03 19:00:00 2009-06-03 19:00:00 (null) (null) (null) 0 1 (null) 0 0 0 2009-05-28 18:10:57 (null) http://test:10000/test2/Lists/Calendar, Kalendārs 2009-06-03 19:00:00