2

これらは、フォーム ライブラリの ItemUpdating イベント レシーバーで取得している結果です。

properties.BeforeProperties["CurrentUser"] returns null

properties.AfterProperties["CurrentUser"] returns null

properties.ListItem["CurrentUser"] returns the old value

infopath をフォームとして使用している SharePoint フォーム ライブラリで、古い値と新しい値を比較するにはどうすればよいですか?

私はこのサイトを見ましたが、私の問題を解決してくれません。

4

1 に答える 1

1

私は自分の問題を理解することができました。これができることです。上記のリンクでは、ライブラリまたはリストを使用しているものに応じて、使用するプロパティを見つけるためのリファレンスを参照できます。

私の場合、ライブラリを使用していました。これを覚えておいてください。ほとんどのブログでは、フィールドの InternalName を使用する必要があると書かれていますが、私にとっては違いました。DisplayName を使用しましたが、うまくいきました。コードで表示名を使用してみてください。うまくいかない場合は、内部名を試してください。上で述べたように、表示名は私のためにトリックをしました。

次に例を示します。

InternalName: Current_x0020_User
DisplayName: Current User

public override void  ItemUpdating(SPItemEventProperties properties)
{
    properties.BeforeProperties["Current User"]   //use the Display Name

    properties.AfterProperties["Current User"]    //use the display name

    properties.ListItem["Current User"]          // use the display name
}

これが役に立ったかどうか教えてください

于 2013-04-12T18:27:08.877 に答える