1

私は混乱しており、この問題に対する正しい答えを見つけることができないようです:

以下のコードに示すように、イベント レシーバーで ItemUpdating メソッドを使用してフィールド タイトルを更新すると機能しますが、「フォームの編集」で変更した他のフィールドは変更されません。彼らはそのままです。

public override void ItemUpdating(SPItemEventProperties properties)
{
    SPListitem item = properties.ListItem;
    item["Title"] = "title has been changed";
    item.Update();
}

上記のコードを入れてItemUpdatedも機能しませんが、UI (編集フォーム) を介して行われた変更が有効になります。

誰でもこの問題を解決するのを手伝ってもらえますか?

ありがとうございました

編集

次のように簡単に言いましょう。

イベントレシーバーを介して1つまたは複数のフィールドを更新し、リストの編集フォームを介して他のフィールドを更新する方法を誰か教えてもらえますか?

これがより明確になることを願っています。

4

2 に答える 2

0

リスト内のフィールドを更新するには、イベントレシーバーでItemUpdatedを使用するのが常に最善です。また、を使用してイベントレシーバーのフィールドを更新することに注意する必要があります

item.Update();

ワークフローを開始するときに問題が発生する可能性があります。次の方法を使用して、複数のフィールドを更新できます。

               base.EventFiringEnabled = false;
               try
               {
                   item.SystemUpdate(false);
               }
               finally
               {
                   base.EventFiringEnabled = true;
               }
               break; 
于 2012-12-21T05:52:02.897 に答える