2009-07-30 10 views
5

Also, ich habe ein Problem, das jemand gelöst haben könnte (oder so hoffe ich). Ich habe ein Datetime-Feld, das ich in einem contenttype (auf einem listtemplate) verwende, das seine eigene Bearbeitungsform hat.Setze Wert des datetime Felds auf null

Heres ein Durchlauf von dem, was passiert:

  1. Wert der Datetime-Spalte Hinzufügen und Speichern der aktualisierte Wert erscheint (wie erwartet).
  2. Aktualisieren der Datetime-Spalte und Hinzufügen von Null (Leeren des Werts) über das Bearbeitungsformular. Der Wert wird nicht aktualisiert, sondern zeigt den alten Wert an.

ich einige mit diesem experimentieren tat und ich kam zu dem Schluss, dass, wenn ich einen Eventreceiver hinzufügen und versuchen, den Wert zu aktualisieren, da es spielt keine, auch die Eventreceiver als eine leere Zeichenfolge eingeben (ich hatte eine Idee, dass die value ist wie ein leerer String und sharepoint kann das nicht auf eine Null Datetime parsen) was mich zu der Annahme bringt, dass es ein Problem mit dem Feldcontrol gibt, das das verursacht. Ich fand auch this Artikel auf MSDN, die um das gleiche Problem zu sein scheint. Außerdem ist das datetime-Feld im contenttype nicht erforderlich.

Irgendwelche Ideen oder Vorschläge?

UPDATE:

Offenbar dies nur geschieht, wenn ich eine benutzerdefinierte EditForm verwenden. Wenn ich einen der eingebauten Listentemplates verwende, funktioniert das wie ein Zauber.

Antwort

0

Nach einiger tiefer Investionation habe ich festgestellt, dass die Wurzel dieses Problems mit der Tatsache zusammenhängt, dass ich die XML-Knotenausbreitung zwischen den Spalten in der Liste und der eigentlichen XML-Datei verwendete. Ich hatte prevoiusly damit in Bezug auf Stardard Textfelder kämpfen und dachte, dass ich auf das Problem aufgepasst hatte ... offensichtlich nicht. DateTime-Felder werden anscheinend nicht an den Event-Empfänger nach Eigenschaften gesendet, wenn sie null sind, da mein Code sie daher nicht als Null-Wert aufnimmt. Ich musste davon ausgehen und sie zu den Nacheigenschaften hinzufügen, wenn ich sie nicht in Nacheigenschaften finden kann. Ich werde eine Blogpost-Serie über diese Themen machen und die Links zu diesem Post in Kürze veröffentlichen.

UPDATE:

ich jetzt einen Blogpost über abgeschlossen haben, wie ich dieses Problem gelöst. Fühlen Sie sich frei, es auszuprobieren: http://johanleino.wordpress.com/2009/08/24/node-demotion-does-not-work-with-blank-empty-values/

1

Ich hatte ähnliche Probleme in der Vergangenheit. Es ist in der Tat ein bekannter Fehler. Eine Umgehung besteht darin, das Feld auf den Min- oder Max-Wert des Typs zu setzen und diesen Wert bei Bedarf zu überprüfen und die entsprechenden Konvertierungen durchzuführen. Abhängig von Ihrer Einrichtung und Verwendung können Sie einen Trigger erstellen, um Min/Max-Werte in null zu konvertieren und somit den Code zu minimieren, der für eine solche Umgehung erforderlich ist.

Verwandte Themen