2009-06-17 2 views
1

어떻게 List에 액세스하고 CAML이 적용될 수있는 SharePoint 웹 파트를 만들 수 있습니까?campt와 xslt가 포함 된 sharepoint webpart

이 CAML은 "위치"와 필드에만 목록 항목을 반환 표시 할 필요가> 0

나는 또한 그 적용 XSLT를 할 수는 WebPart이 필요합니다.

+0

"Position"> 0에 대한 요구 사항이 추가되었습니다. –

답변

3

페이지에 콘텐츠 쿼리 웹 파트를 추가해야합니다 (참고 : 무료 WSS가 아닌 MOSS 필요). 이를 통해 데이터를 쿼리하고 XSL 변환을 적용 할 수 있습니다.

웹 파트를 사용하면 특정 사이트 모음, 웹 또는 목록을 쿼리 할 수 ​​있습니다. 그런 다음 매개 변수를 설정하여 특정 유형의 데이터를 반환하고 필터, 정렬 및 그룹화를 적용 할 수 있습니다. 최종 사용자에게 표시되는 데이터를 드롭 다운 목록으로 표시하는 방법을 선택할 수도 있습니다. 이러한 각 옵션은 XSL 변환을 통해 제공됩니다.

This blog post by Heather Solomon은 고유 한 변환을 만들고 CQWP를 구성하는 방법을 배우는 데 도움이되는 최상의 리소스 중 하나입니다. 또한 필요한 모든 필드가 XSLT로 전달되는지 확인하는 방법에 대해 설명합니다 (기본적으로이 작업은 작은 하위 집합에서만 발생합니다).

업데이트 :

에 필드 "위치"> 0, 그것뿐만 아니라 XSLT에서이 작업을 수행하는 것이 가장 간단 경우에만 목록 항목을 반환합니다. 위치 필드를 CommonViewFields에 추가하여 XSLT로 전달되도록해야합니다. (당신은 헤더의 게시물을 따르는 경우 ItemStyle.xsl에) 그런 다음 사용자 정의 항목 스타일로, 다음과 같은 추가 :이 암시 적으로 무시

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

을 때 "위치"나는 알렉스 동의 < = 0

1

, 그 CQWP (Content Query Web Part)는 가능한 경우 이동하는 방법입니다.

그러나 코드에 들어가려면 다음과 같이하면됩니다. 거친 부분은 그것을 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을 사용하면 도움이됩니다.

관련 문제