サード パーティを購入する以外に、CQWP コントロールを拡張して別のサイト コレクションのコンテンツを含めるための最良の方法は何ですか?
2 に答える
実際、私たちはそれを理解しました。CQWPから継承し、大量のリフレクターを使用して多くのCQWPコードを再現することに成功し、現在のサイトだけでなく他のサイトコレクションにもクエリを実行できるようになりました。ただし、関連するコードは気弱な人向けではありませんでした。
コンテンツ クエリ Web パーツをオーバーライドして、別のサイト コレクションをクエリすることはできません。SPSiteDataQuery http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsitedataquery.aspxを使用します。これは現在のサイト コレクションに限定されています。ただし、同様の機能を持つが、SPContext からではなく URL によってサイト コレクションを参照するカスタム Web パーツを作成することもできます。例:
using (SPSite site = new SPSite(" http://server/ ")) { // SPSiteDataQuery を作成します // CAML クエリを含めます // 結果のデータテーブルを使用して XML を作成します // XSLT を使用して XML を HTML に変換します }