Frage

hintergrund: Die Firma, für die ich arbeite, ist eine reguläre SharePoint-Liste mit einem benutzerdefinierten ContentType (das nicht von einem Kalenderlistenelement ergaut), dass er für Ereignisse verwendet. Es zeigt dann diese mit einer Kalenderansicht. Scheint einfach genug zu sein. Wir müssen den Benutzer ermöglichen, einen Zeitzone für das Ereignis auszuwählen (unterscheidet sich von ihrer regionalen Einstellung), dass sie hinzugefügt werden, dass sie die Informationen zum SharePoint fügen, so dass er die richtige Zeit für jeden Benutzer zeigt, der ihn weltweit ansieht ( basierend auf ihrer regionalen Umgebung natürlich). Ich habe eine Liste in SharePoint hinzugefügt, die zum Nachschlagen von SystemTimeZONES verwendet wird (im Wesentlichen eine SharePoint-List-Darstellung von TimeZoneInfo.getSystemTimeZONES ()) generasacodicetagpre.

Ich verwende diese Liste für den Lookup-Element für EventTimeZone in meiner benutzerdefinierten Hinzufügen und Bearbeiten von Formularen für diese Liste. Die Formulare sind direkte Kopien dessen, was SharePoint Designer erstellen würde (dadurch, dass sie den SharePoint verwenden: Formfields) Sie sind nur in Visual Studio BC, den ich Code-zurück brauchte. Ich wollte den Benutzern erlauben, die Ereignisse in ihrer regionalen Zeitzone zu sehen, aber wenn sie sie bearbeiten, wollte ich sie in der Zeitzone zeigen, die sie eingegeben wurden. (Dh meine regionale Timezone ist zentral, wenn ich auf ein Bergtreffen anschaue, wird es mir 10-11am zeigen, aber wenn ich das gleiche Treffen bearbeite, wird es sagen, dass es 9-10 Uhr ist. Also auf der Seite Laden von Edit, ich passe die Zeiten an: generasacodicetagpre.

Die ganzen Tag Ereignisse waren seltsam, aber ich konnte es tun, indem ich nur Testfälle schreibt und was passiert ist (wie Sie aus meinen Kommentaren sehen).

Dann bin ich in die Liste der Listenereignisse angebracht, die die Zeiten, da SharePoint sie auf der Grundlage der regionalen Einstellung des Benutzers speichern soll, und nicht die Zeitzone, die der Benutzer entschieden hat, "Fix" eingereichert wird. (Natürlich bin ich etwas neu in SharePoint - nicht c # - also habe ich vielleicht sehr viel über kompliziert, aber ich konnte wenig Online-Dokumentation online tun). Am Ende enden ich am Ende: generasacodicetagpre.

wird immer noch auf update () zurückgesetzt. Wenn Sie also den wiederkehrenden Element in einer Kalenderansicht anzeigen, spanscht der Artikel die gesamte Woche, anstatt einmal am Tag zu zeigen.

Ich habe alle, aber zog meine Haare heraus, um dies herauszufinden. Jede Anleitung wäre wunderbar. Ich verstehe die Dauer ist ein berechnetes Feld, aber ich kann nicht verstehen, warum der Ruf von listitem.update () die Tatsache ignorieren würde, dass es tatsächlich ordnungsgemäß als wiederkehrendes Ereignis markiert ist und die Dauer nicht korrekt berechnet. Dies scheint ehrlich wie ein Fehler mit SP 2010 zu sein.

Vielen Dank im Voraus!

War es hilfreich?

Lösung

ok, so wie ich das Handhaben beendet habe, ist wie folgt.Ich habe mich entschieden, den Listenereignisempfänger wieder herauszufinden, da er wirklich ein SharePoint-Fehler in der Neuberechnung der Dauer für wiederkehrende Ereignisse erscheint, die jetzt ordnungsgemäß funktionieren.Ich entschied mich dafür, in das SPARE-Ereignis in der Form zu binden und die Werte zu ändern, bevor sie sogar gesendet werden.Dies scheint in allen Szenarien so weit zu arbeiten.Alle meine Mathematik ist derselbe wie zuvor.Also in meinem new2.aspx (neues Elementformular für diese Liste) generasacodicetagpre.

Diese aktualisiert die Zeiten, wie mein vorheriger Ansatz tut, kann aber auch die Dauer korrekt berechnen.

SharePoint-Griffe, die die korrekte Zeit anzeigt, basierend auf den regionalen Einstellungen des Benutzers (oder des Internets, wenn der Benutzer nicht festgelegt ist) und zeigt die richtigen Zeiten in der Kalenderansicht an.Ich musste das Bearbeitungsformular ändern, um die korrekten Werte bei Bearbeiten zu haben: generasacodicetagpre.

Das Bearbeitungsformular hat den gleichen Oninit- und SaveHandler als neu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top