質問

公開サイトでは、カスタムディスプレイ(一種の回転子)を使用したクエリの結果を表示するWebパートを作成したいと思います。

Webパーツの目標は再利用可能であり、ユーザーが非常に単純に構成できる必要があるため、次のアプローチの長所と短所は何なのか疑問に思っています。

  • 「ハードコーディングされた」方法でHTMLを生成するカスタムWebパーツ。ツールペインを追加して、ユーザーがデータをセットアップできるようにします
  • XSLT変換を備えたコンテンツクエリWebパーツ
  • Webパート内にカスタムオプションペインを備えたSilverlight Webパーツ

Webパートのセットアップ全体がすでにここにあるので、2番目のソリューションはより良いと感じていますが、XSLTが非常に苦痛になるのではないかと心配しています。

フィードバックを前もってありがとう

役に立ちましたか?

解決

XSLTを恐れないでください。これは、それを理解するための少しの努力と引き換えに何かを開発または展開することなく、あなたに膨大な量の力を与えます。入ってくるXMLを見ることができるように、アイデンティティ変換から始めることをお勧めします。その後、テンプレートを追加して、興味のあるノードを処理します。

Visual Studioには、XSLTを使用するための優れたツールがあります。 Intitial XSLTをIdentity XSLTを作成し、それを使用してソースXMLファイル(リストデータに対応)を変換できます。その後、デバッグモードとブレークポイントで変換を開始し、XSLTをステップスルーできます。

そうは言っても、カスタムWebパーツを書くことが理にかなっている場合があります。 CQWPができないことが必要なことがあるかもしれませんし、場合によってはCQWPソリューションが非常に複雑になる場合があります。それは問題を理解することから決めなければならないことです。ただし、XSLTのためにCQWPを避けないでください。

他のヒント

あなたの場合、つまり、カスタムディスプレイで結果を表示します。2つのオプションをお勧めします。

  1. クライアント側の結果を変換します。たとえば、回転子に何らかのjQueryプラグインを使用する場合、jQueryを使用して回転子の結果データを初期化することが可能です。
  2. CQWPを拡張するオプション、その場合、結果のレンダリングをカスタマイズできます。たとえば、私のブログを参照してください コンテンツクエリWebパーツのレンダリングにより、テーブルレイアウトが表示されます リストレイアウトの代わりに、プレーンな古いテーブルレイアウトにアイテムを配置する方法について

Bill(SPDOCTOR)の回答で拡大する別のオプションは、ContentByQueryWebPartから継承するWebパーツの新しいクラスを作成することにより、CQWPを拡張することです。

これにより、ロジックを制御するためにツールペーンにオプションを追加することができ、XSLTでカスタムメソッドを使用できるようにします。

Waldek Mastykarzは、このサイトの一連の優れたブログ投稿でこれをカバーしています。 http://blog.mastykarz.nl/extending-content-query-web-with-custom-data/

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