내 SharePoint 페이지에있는 SPDataSource 컨트롤을 찾으려고합니다. 아마 잘 작동하는 다음 코드를 발견했습니다. 단지 무엇을 전달해야할지 모르겠습니다. 나는 더 많은 것을 가지고있는 것처럼SharePoint 페이지에서 컨트롤 찾기
public static Control FindControlRecursive(Control Root, string Id)
{
if (Root.ID == Id)
return Root;
foreach (Control Ctl in Root.Controls)
{
Control FoundCtl = FindControlRecursive(Ctl, Id);
if (FoundCtl != null)
return FoundCtl;
}
return null;
}
나는 그것이 전체 페이지를 검색하거나 컨트롤에있는 아주 최소한의 ContentPlaceHolder가하는 방법을 모르겠어요.
편집
이 보이는 여기에 기본적인 문제가있다. 설명하는 방법을 모르지만 코드를 실행하기 전에 페이지를 열지는 않습니다. 다음을 통해 사이트를 여는 중입니다 :
using (SPWeb web = thisSite.Site.OpenWeb("/siteurl/,true))
그래서 아래의 페이지를 찾으려고 할 때 객체 참조가 객체의 인스턴스로 설정되지 않습니다.
var page = HttpContext.Current.Handler as Page;
은 아마도 내가 이것에 대해 잘못된 길로 갈거야, 그래서 난 그냥 가지 물건을 파악 함께 비틀 거리고있어 여기 내 초기 단계에있어!
케어처럼 전화를 시도? –
템플릿에서 사이트를 만드는 목록에 대한 이벤트 처리기가 있습니다. 이제 템플릿 사이트의 SPDataSource를 목록 항목에서 가져 오는 데이터로 업데이트하려고합니다. 주로 데이터를 필터링 할 수 있도록 SPDataSource의 SelectCommand를 업데이트하려고합니다. – Mike