2010-03-11 4 views
4

현재 동일한 페이지에있는 세 개의 중계기에 특정 ItemTemplate을 사용하고 있지만 모두 다른 데이터 소스에 바인딩되어 있습니다. 내 웹 양식 없이없이 사용자 정의 컨트롤을 사용하여이 템플릿을 쉽게 참조 할 수 있도록 리팩터링 할 수있는 방법이 있습니까? 한 번만 정의해야합니다.ASP.NET : 동일한 Repeater ItemTemplate 재사용

+0

마크 업에 템플릿이 정의되어 있으면 다른 컨트롤이 이전에 정의한 동일한 템플릿을 참조해야하는 경우 더러워집니다. 사용자 정의 컨트롤은 깨끗하며이 시나리오에서는 저의 선택입니다. 통제를 원하지 않는 이유는 무엇입니까? –

답변

1

예 가능합니다. 리피터가있는 다른 asp.net 컨트롤 (ascx)을 만들고, 데이터 테이블 (또는 목록 또는 항목)을 수락하고 리피터를 바인드하는 공용 메소드를 생성하면이 작업이 완료됩니다. 10 분 안에


public void BindData(DataTable dt) 
{ 
    rpt.DataSource = dt; 
    rpt.DataBind(); 
} 

dt에 동일한 열 이름이 있으면 작동합니다.

3

아니요. 사용자 컨트롤이있는 이유가 반복되는 시각적 구성 요소를 캡슐화하기 위해서입니다.

+0

나는 꽤 동의하지 않는다. 나에게 사용자 컨트롤은 자신의 "엔터티"이며, 어디서나 배치하고 자신의 상태를 유지할 수 있습니다. 내가 찾고있는 것은 매크로와 비슷한 것입니다. –

관련 문제