ItemAdding EventReceiverを使用して、あるフィールドからの値に基づいて複数のフィールドを更新する

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/53731

質問

私はSPFieldMulticolumn型のカスタムSharePoint 2010 SPフィールドを持っています。この列のデータは区切られた文字列に格納されます。これは、ほとんどの領域で解析可能な形式でレンダリングされ、読み取り可能な形式でレンダリングされます(リストビュー、「プロパティ」など)。 RAWデータはこのようになります(文言が変更されました):

;#0;#label1; #treue; #guid; #description_of_label;#;#1;#label2;#label2; #treus;#...

など。説明はかなり長く、この文字列を数百文字にし、解析され、レンダリングされていないときは実際に醜いです。この問題は、システムの特定の部分では、フィールドのレンダリングを制御することはできません。私たちが見る最も一般的な問題はデータシートビューにあり、生のデータが表示され、ただひどく見えるだけで、データシートはユーザーにとってほぼ使用できません。データは警告Eメールと検索結果にも表示されます。

私はこの「Prettier」を作ることで任意であり、私の解決策は二次、「表示」列を追加し、「データ」列を非表示にすることでした。アイテムが更新または追加されると、データを変換して表示フィールドに移動するイベント受信機があります。これはデータシートビューなどでよさそうです。

これは、このメタデータを取得する各項目に対して2つのupdate()呼び出しを必要とするという事実を除いて、非常に機能します。 「データ」フィールドが入力されているとき、およびイベント受信側がデータをディスプレイにコピーするときに別のものを1つ。

私たちの生産(そしてQAS、テストや開発は、算出していません)農場はリモートBLOBストレージ(RBS)を利用しており、当社のオペレーションチームは、この列(または私が列を推測)がOffice文書で更新されるたびに(Doc、 DOCXなど)ファイルシステムの新しいBLOBを引き起こします。そのため、ソリューションが今日されるように、アップロードされた新しいファイルは2つのBLOB(アップロードのためのもの、このメタデータのアプリケーションのためのもの)を生成します。この新しいEventReceiverを使用すると、当社は当社のオペレーションチームにとって不注意なものである3つのBLOBを生成します(これをサポートするための50%以上のディスク容量はありません)。

'' fixing 'RBSは問題外にありません。そのため、更新するのではなく、次の列の両方を一度に更新する必要があります。これは、イベント受信側を起動します。

更新()を更新する1回のカスタムSPフィールドを更新する方法はありますか?

tl:2カスタムSPフィールドを持つカスタムソリューション - 「編集」フォームを通して更新された1つは、イベント受信機を通して他方(2番目のデータは最初のデータの最初に完全に依存しています)。イベント受信者を使用せずに(1つの更新()コールのみ)を使用せずにアップデートする方法をどうすればよいですか。

役に立ちましたか?

解決

ItemUpdatedイベントを使用しているように聞こえます。ItemUpdatingを使用した場合、私は2回目のアップデートを実行するのではなくアフタープロパティを変更できると思います。

これはあなたに使うかもしれません: nbsp:イベント受信機

他のヒント

ルックアップ列を作成するときは、ルックアップリストから追加の列を表示することを選択できます。

あなたがここに欲しいものがあなたのラベル/説明を持つリスト、そしてラベル列へのルックアップ列を含むリストで、追加フィールドとして説明を持ちます。データシートビューで完全にきれいになるかどうかはわかりませんが、それは改善です。

この種の問題に対する他の潜在的な解決策は計算された列ですが、私があなたのシナリオを見るものからそれは合いません。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top