問題タブ [event-receiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
20312 参照

c# - イベント レシーバーで SharePoint ListItem の After プロパティと Before プロパティを取得する

そこで、SharePoint 2010 リストでこの種の機能を実現しようとしています。

リストにタイプ選択のフィールドがあり、7 つの値があり、ユーザーがそのフィールドの値を値 2、3、4、5、6、7 から値 1 に変更できないようにします。

そのリストのイベント レシーバーを作成しました。コードは次のとおりです。

ItemUpdatedとイベントレシーバーの両方を使用してみました。ItemUpdatingデバッグ中に、イベントレシーバーが本来あるべきように呼び出されるのを見ましたがbeforeStatus、どちらの場合もアイテムからafterStatus取得しています。null

では、正しく更新する前後の項目のフィールドの値を取得するにはどうすればよいでしょうか? 前もって感謝します!

注: フィールドの内部名と表示名は両方ともStatus.

0 投票する
1 に答える
145 参照

c# - リモート SharePoint 2010 の EventReceiver を作成する

リモート サーバーのどこかにホストされている SharePoint サイトの URL を指定しました。そして、そのサイトのライブラリのイベント レシーバーを書き込もうとしていますが、(リモート マシン上の) サイトの URL を指定しようとすると、Visual Studio(2010) で次のエラーが発生します。 URL入力後にエラー

いくつかの検索の後.. リモート マシン/サーバー上の sharepoint(2010) サイトに eventreceiver を書き込むことはできないと思います。

別の可能性があれば何か提案してください。

0 投票する
2 に答える
11167 参照

c# - SharePoint 2013 イベント レシーバーでリスト アイテムの添付ファイルを正しい順序で取得する方法

カスタム リストに標準の SharePoint 2013 イベント レシーバーを作成しました。

監視イベント = "ItemAdded".

コードの後半で、リスト アイテムの添付ファイルをユーザーが挿入した順序で取得する必要があります。残念ながら、SharePoint はデフォルトでこれを行わないようです。

ユーザーがリスト アイテムを作成し、次のファイルを添付します。

写真_正面.jpg

Picture_back.png

写真_231.jpg

これで、イベント レシーバーで、最初に「Picture_back」を取得してから「Picture_front」を取得する可能性があります...またはその他の順序で取得できます。

リスト アイテムに添付されたのと同じ順序で添付ファイルを取得するにはどうすればよいですか? SPFile プロパティ 'TimeCreated'を使用しようとしましたが、これも機能しません...同じタイムスタンプを取得しました :( ('Ticks' を使用している場合も)

アイデアはありますか、それとも何か間違っていますか?

ここに私のコードがあります:

0 投票する
2 に答える
2599 参照

c# - SharePoint 2013 サーバー オブジェクト モデル。サイトの作成中に、あるサイトから別のサイトにアクセス許可をコピーする

同じ Web アプリのサイト コレクション B で作成しているサイトに、サイト コレクション A からアクセス許可をコピーしたいと考えています。これは、ItemAdded のリスト アイテム イベント レシーバーで発生しています。

これが私がこれまでに持っているものです...

このコードは正常に実行されます。 1. 他のサイト コレクションに新しいサイトを作成します。2. 新しく作成されたサイトで継承を解除します。3. 新しく作成されたサイトから元の権限を削除します。

このコードは成功しません:

  1. グループを他のサイト コレクションから新しいサイトにコピーします。
0 投票する
1 に答える
484 参照

c# - Splistitem フィールドの更新に関するイベント レシーバーの問題

Office Word を介してドキュメントをイベント レシーバーの SharePoint に保存する場合にのみ、Splistitem フィールドを更新する際に問題が発生します。

SharePoint からドキュメントを追加すると機能します。

ここに私のコードがあります:

0 投票する
2 に答える
2417 参照

c# - カスタム フィールド タイプを使用した SharePoint カスタム アップロード ページ

SharePoint で、ユーザーがハード ドライブからアップロードするファイルを選択し、ファイルのタイトルを入力し、必要に応じてコメントを追加し、コンテンツを指定できるように、ファイル アップロード コントロールとカスタム フィールド タイプを組み合わせたカスタム アップロード ページを作成することは可能ですか?いくつかのカスタム フィールドに追加データを入力し、新しい SPListItem を作成し、ファイルをアップロードして新しい SPListItem に関連付け、最後にカスタム フィールドに入力されたすべての値を新しく作成した SPListItem に正常に保存しますか?

注:私は、SharePoint カスタム フィールド タイプのみを使用してこのタスクを実行しようとしています。単純に多数の UserControls を含むカスタム ASPX ページを使用するのではありません。

カスタム フィールド タイプを使用する際に存在する根本的な問題は、SharePoint ドキュメント ライブラリのファイル アップロード イベントが非同期イベントであることです。SPListItemEventReceiver で使用可能な ItemAdding メソッドの既定の動作をオーバーライドできます。このメソッドを使用すると、ファイルが「アップロード中」のときに特定の情報にアクセスできます。同様に、ItemAdded から新しく作成された SPListItem に関する情報にアクセスできます。メソッドは「アイテムが既に追加された後に」呼び出されますが、このメソッドは別のスレッドで発生し、カスタム フィールドまたはそれぞれの値に関連する情報をまったく知らずに非同期で実行されるため、ユーザーが入力したデータはまったく取得されません。これらのフィールドでは、正常に保存されます。

ユーザーが EditFormTemplate を使用してカスタム フィールドの値を編集することにより、ドキュメントに関する情報を更新したい場合、初期化中に各フィールドの SPListItem プロパティが設定されます。このような場合、ListItem は既に存在するため、これはすべて正常に機能します。問題は、ユーザーが初めてドキュメントをアップロードしたいとき、明らかに ListItem がまだ存在しないため、各フィールドが SPListItem プロパティを「null」に設定して初期化され、永久に null のままになることです。ファイルがアップロードされた後に、新しく作成されたListItemへの参照を使用して、各フィールドの ListItem プロパティをさかのぼって更新する方法ではないようです。

Microsoft がユーザーに 1 つの画面でファイルをアップロードし、ファイルが正常にアップロードされた後に編集フォームにリダイレクトすることを強制することを主張したのは、この理由だけでした。2 つのページを分割することにより、Microsoft はユーザーに、ファイルに関するその他の情報を保存する前に、ファイルをアップロードしてListItemを作成するように強制します。ファイルがアップロードされ、ListItem が作成されると、ListItem は既に存在するため、個々のカスタム フィールドの値をそれぞれ ListItem に保存することに問題はありません。

注: BaseFieldControl は、FormComponent を継承する FieldMetadata を継承します。FormComponent には、フィールドが属する基になる SPListItem に対応するItemというプロパティがあります。BaseFieldControl には、ListItemFieldValue と呼ばれるプロパティがあり ListItem に保存されるフィールドの実際の値を格納します。また、UpdateFieldValueInItem()と呼ばれるオーバーライド可能なメソッドもあり、データを割り当てる前に追加のロジック (検証など) を実行するために使用できます。 ItemFieldValueプロパティ

既存SPListItemを更新する場合、次のコードは有効で、SPListItem が既に存在するため、カスタム フィールドの値が保存されます。

SPListItemEventReceiver では、最初のファイルのアップロード中に、ListItem が作成され、個々のカスタム フィールド値が「保存されようとした」後、ItemUpdating/ItemUpdated メソッドに SPItemEventProperties プロパティの null 参照が含まれます。 ItemAdded メソッドは非同期で起動され、新しく作成された ListItem は ItemUpdating/ItemUpdated メソッドでは使用できません。

0 投票する
1 に答える
359 参照

sharepoint-2010 - イベント レシーバー ブレーク機能

イベント レシーバーを含む SharePoint プロジェクトがあり、リストから特定のイベント レシーバーを 1 つ除外する限り、ソリューションは正常に展開されます。

そのイベント レシーバーを機能リストに追加すると、次のエラーが表示されます。

このプロジェクトは私が始めたものではなく、イベント レシーバー プロジェクトに関しては初心者です。