2009-07-30 8 views
5

だから、私は誰かが解決した可能性がある(またはそうしたい)という問題があります。私は独自の編集フォームを持つcontenttype(listtemplate上)で使用するdatetimeフィールドを持っています。datetimeフィールドの値をnullに設定します

Here's何が起こるかのチュートリアル:

  1. datetime列に値を追加し、保存(予想通り)更新された値が現れます。
  2. datetime列を更新し、editformを使用してnullを追加します(値を空にする)。値は更新されず、代わりに古い値が表示されます。

これを試してみましたが、イベントレシーバーを追加して値を更新しようとすると、イベントレシーバーを空の文字列として入力することさえできませんでした(私は、値は空文字列であり、sharepointはそれをnull日時に解析できません)、これが原因でfieldcontrolに問題があると思うようになります。私はまた同じ問題の周りにあると思われるMSDNのthisの記事を見つけました。また、contenttypeのdatetimeフィールドは必須ではありません。

アイデアや提案はありますか?

UPDATE:私は、カスタムのEditFormを使用する場合

は、どうやらこれはのみ発生します。組み込みのlisttemplateの1つを使用すると、これは魅力的に機能します。

答えて

0

私は、この問題の根本は、リスト内の列と実際のxmlファイルの間でXMLノード伝播を使用していたことに関連していることがわかりました。私はprevoiuslyにこれとは正反対のテキストフィールドに関して苦労していて、私が問題の世話をしたと考えました。 DateTimeフィールドは、イベントレシーバのafterpropertiesに送信されません。なぜなら、nullであれば、私のコードはnull値としてそれを受け取らないからです。私はそれを後で知ることができなければ、それを後の特徴に加えなければならなかった。私はこれらの問題についてブログポストシリーズを作り、この記事へのリンクをまもなく掲載する予定です。

UPDATE:私は今、私はこの問題を解決する方法についてのブログ投稿を完了している

。確認してください: http://johanleino.wordpress.com/2009/08/24/node-demotion-does-not-work-with-blank-empty-values/

1

私はこれまでこれと同様の問題を抱えていました。これは確かに既知のバグです。 1つの回避策は、型の最小値または最大値にフィールドを設定し、必要に応じてこの値をチェックし、適切な変換を行うことです。設定や使用方法によっては、最小値/最大値をnullに変換するトリガーを作成して、そのような処理を処理するために必要なコードを最小限に抑えることができます。

関連する問題