Visual Studio에서 사용자 지정 웹 파트 만들기를 시작하고 여러 사이트의 목록에서 데이터를 수집하는 방법은 무엇입니까?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/94446

문제

우선 저는 Visual Studio 2013과 C#을 사용하는 작업이 매우 낯설다는 점을 말씀드리고 싶습니다.

SharePoint 2013 테스트 환경을 위해 Visual Studio 2013에서 특정 웹 파트를 만들고 싶습니다. 웹 파트는 다른 공지 목록에서 목록 항목을 가져와야 하며 이러한 공지 목록은 다른 사이트에 있을 수 있습니다. 기본적으로 모든 공지사항 목록의 내용을 하나의 사용자 정의 목록으로 표시할 수 있어야 합니다.

다음은 시나리오의 예입니다.

Subsite A: has a list named "List X"
Subsite B: has a list named "List Y"
Subsite C: has a custom web part that shows items from "List X" and "List Y"

그래서 Visual Studio에서 하위 사이트 C에 배치될 사용자 지정 웹 파트를 만들고 싶습니다. 이 파트는 다른 하위 사이트에 있는 다른 목록의 항목을 표시합니다.

테스트 환경에 배포할 수 있고 페이지에 사용자 지정 웹 파트를 추가할 수 있어 좋은 결과를 얻을 수 있지만 약간의 노력만 필요합니다.
나에게 필요할 수 있는 것(아마도 도구 상자에서) 또는 해당 SharePoint 목록에서 데이터를 얻을 수 있는 방법(제안, 링크 등)에 대한 몇 가지 제안은 모두 환영할 것입니다.

귀하의 도움과 시간에 크게 감사드립니다!

도움이 되었습니까?

해결책

당신이 사용할 수있는 SPSiteData쿼리 동일한 사이트 모음의 여러 하위 사이트에서 목록 데이터를 가져옵니다.

다음은 다양한 하위 사이트에서 모든 공지사항 목록 항목을 가져오는 데 사용할 수 있는 기본 코드입니다.

using (SPSite oSPsite = new SPSite(SPContext.Current.Web.Url))
        {
            using (SPWeb oSPWeb = oSPsite.OpenWeb())
            {
                // Fetch using SPSiteDataQuery
                SPSiteDataQuery query = new SPSiteDataQuery();
                query.Lists = "<Lists ServerTemplate=\"104\" />";//104=List template ID for "Anouncements"
                query.ViewFields = "<FieldRef Name=\"Title\" />";//Add other fields which you want to get.
                query.Query = "";//you can add your caml query if you want to filter the list items returned
                query.Webs = "<Webs Scope=\"SiteCollection\" />";//Scope is set to site collection to get data from all anouncement lists in that site collection.
                DataTable dataTable = oSPWeb.GetSiteData(query);
            }
        }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top