私はこの問題に実行し続けるし、Google は決してやりたいを理解すると思われる, ダウンこれを書くでしょう考え出したので.
最後の 1 週間または 2 つのデバッグ イベント レシーバーの多くを行ってきた. 小胞体は、ドキュメント ライブラリに対して定義されて. ドキュメント ライブラリ内の個々 の項目は、親フォルダーと密接に関係します。. だから, 私は常に様々 な操作の項目のフォルダーを得ること. デバッグ中, 私は知っている ID の特定の項目のフォルダーのメタデータを更新するために必要な.
ここでは少しコンソール アプリケーションです。 (ファーム内のサーバー上で実行するように設計) 2 つの引数を受け取る: 項目と値のフィールドに割り当てる ID, 「承認状態」. それは難しいものの多くのコードし、エラー チェックを持たない.
コードは、ハード コーディングされたサイトを検索します。, ハード コーディングされたドキュメント ライブラリを取得し、指定されたアイテムを検索. そのアイテムの親フォルダーを検索し、ステータス値を割り当てます.
ここで私にとって重要な教訓は、SPItem がフォルダーへのアクセスを取得していないこと. SPListItem.File を使用する必要があります。.
誰にも気を批判を提供したり、アイテムのフォルダーを取得するより良い方法を提案する場合, くださいコメントを残す.
<コード>
使用してください。 システム; 使用してください。 その他; 使用してください。 System.Text; 使用してください。 Microsoft.SharePoint; 使用してください。 System.Collections; 名前空間 Conchango { /// <概要> /// </概要> クラス ManualFolderUpdate { 静的 void メイン(文字列[] args) { 文字列 msh = "ManualFolderUpdate (v1.0): "; // msh ="メッセージのヘッダー" コンソール.WriteLine(msh + "を開始. 私は最終 08/08/04 に更新されました。"); 文字列 url = http://localhost/xyzzy; 使用してください。 (SPSite oSPSite = 新機能 SPSite(url)) { 使用してください。 (SPWeb oSPWeb = oSPSite.OpenWeb()) { SPList docLib = oSPWeb.Lists["ドキュメント"]; コンソール.WriteLine(msh + 「ドキュメント ライブラリを得た。"); コンソール.WriteLine(msh + "Doc lib 項目カウント: [" + docLib.ItemCount + "]."); int FolderID = 0; 文字列 再入国 = "xyzzy"; FolderID = システム.変換.ToInt32(args[0].ToString()); コンソール.WriteLine(「アイテムのフォルダーを求めています。: [" + FolderID + "]."); SPListItem 李 = docLib.GetItemById(FolderID); SPFolder thisItemFolder li を =。File.ParentFolder; コンソール.WriteLine(msh + "親フォルダーを得た。"); 再入国 args を =[1].ToString(); コンソール.WriteLine(「状態をを設定 [" + 再入国 + "]."); コンソール.WriteLine(「リターンを押してを中止する CTRL C または更新をコミットします。"); コンソール.ReadLine(); thisItemFolder.Item["承認の状況"] = (再入国; thisItemFolder.Item.Update(); コンソール.WriteLine(msh + 「フォルダーの更新が完了. 終了しています。"); } // SPWeb を使用してください。 } // SPSite の使用 コンソール.WriteLine(msh + 「終わった。"); } // メイン } // クラス集合的 } // 名前空間
</コード>
</終了>
Technorati のタグ: SharePoint のプログラミング