2009-06-17 18 views
1

リストにアクセスし、それにCAMLを適用できる共有ポイントWebパーツを作成する方法を教えてください。sharepoint webpartとcamlとxslt

CAMLは、私もそれに適用されるXSLTを持っているWebパーツが必要> 0

「位置」とのフィールドを持っているだけのリスト項目を返す表示するために必要とされています。

+0

"Position"> 0と答えてください。 –

答えて

3

コンテンツクエリWebパーツをページに追加する必要があります(注:MOSSでは無料のWSSが必要です)。これにより、データを照会してXSLトランスフォームを適用することができます。

ウェブパーツでは、特定のサイトコレクション、ウェブ、またはリストを照会することができます。その後、特定のタイプのデータを返すようにパラメータを設定し、フィルタ、並べ替え、グループ化を適用できます。エンドユーザーに表示されるデータの表示方法をドロップダウンリストのオプションとして選択することもできます。これらの各オプションは、XSLトランスフォームによって強化されています。

This blog post by Heather Solomonは、独自のトランスフォームを作成してCQWPを設定する方法を開始するのに役立つ最高のリソースの1つです。また、必要なすべてのフィールドがXSLTに渡されるようにする方法についても説明しています(デフォルトでは、これは小さなサブセットでのみ発生します)。

更新:フィールド「位置」> 0だけ復帰リストアイテムに

、それは同様にXSLT内にこれを行うことが最も簡単です。 XSLTに渡すために、位置フィールドをCommonViewFieldsに追加する必要があります。 (あなたはヘザーのポストに従えばItemStyle.xslに)すると、カスタム・アイテム・スタイルで、次を追加します。これは、暗黙的に無視

<xsl:if test="@Position &gt; 0"> 
    <!-- Display desired row output --> 
</xsl:if> 

の際に「位置」私はアレックスに同意< = 0

1

、その可能な場合は、コンテンツクエリWebパーツ(CQWP)を使用します。

しかし、コードに入りたい場合は、次のようなことができます。大まかな部分は、それをXMLに変換していますが、カスタムではない(醜いですが)XML形式に変換する簡単な方法があるかもしれません。

SPList list = web.Lists["My List Name"]; 
SPView view = list.Views["My View Name"]; // This view would define Postion > 0 
SPQuery query = new SPQuery(view); 
SPListItemCollection items = list.GetItems(query); 

// Iterate through results and generate XML 

既存のビューを使用しない場合は、手動でSPQueryオブジェクトを設定する必要があります。 ViewFields、Query、およびRowLimitを最小限に設定します。 CAML Query Toolを使用してこれを手助けすることができます。

関連する問題