2009-04-16 4 views
1

잘만하면 쉽게 System.Web.UI.WebControls.Repeater를 확장하는 사용자 지정 리피터 컨트롤을 만들었습니다. 이 컨트롤에 두 개의 ITemplate 속성을 추가하고 필요할 때 원하는 방식으로 추가합니다. 모든 것이 완벽하게 작동하지만 Visual Studio에서 이러한 새로운 템플릿을 인식하는 데 문제가 있습니다. 나는 페이지로 리피터 등을 추가 할 때사용자 정의 웹 컨트롤, ITemplate을 인식하지 못했습니다.

: 모든이 작동

<my:Repeater ID="rpt" runat="server" NewProperty="This works!"> 
    <NewTemplate>The contents go here...</NewTemplate> 
</my:repeater> 

내가 속성 'NewProperty', 내가 추가 한 속성을 추가 할 때 (! 우)과, 인텔리에서 볼 수있다 Visual Studio에서 예상대로 (우!). Annoyingly 새로운 ITemplate은 Intellisense를 통해 사용할 수 없지만이 사실을 알고 있다는 사실을 상기해야합니다 (부!).

검증 (1.0 과도 XHTML을) : 새로운 템플릿이 아니라 '문제'다음 메시지와 함께 밑줄을 가지고 요소 'newtemplate'는 지원되지 않습니다.

그것은 사용자 정의 리피터 작품을 컴파일하고, 그것을 분류하는 것이 좋을 것 성가심의 더 필요로 템플릿이 작동 할 때와 같은 방법으로 큰 문제가 아니다.

도움 주셔서 감사합니다.

스티브

답변

2

XHTML에서는 요소 이름이 소문자로 시작해야합니다. HTML은 대소 문자를 구분하지 않으며 XHTML은 대소 문자를 구분하지 않습니다.

출처 : 속성을 볼 수 있도록하기위한 다음과 같이 당신이 당신의 ITemplate 속성에 PersistenceMode 속성을 추가 할 필요가 위해

http://www.w3.org/TR/xhtml1/#h-4.2 :

[PersistenceMode(PersistenceMode.InnerProperty)] 
public ITemplate NewTemplate 
{ 
    get; 
    set; 
} 
+0

안녕하세요 호세, 잘 모르겠어요 당신 ' ItemTemplate, HeaderTemplate 등이 대문자로 표시되어 문제를 이해했습니다. 문제는 Visual Studio가 Templates를 인식하지 못하기 때문에 실제로 그렇지 않은 XHTML 요소라고 가정합니다. 나는 VS가 그들에 대해 확실히 알 수있는 방법이 있기를 바랐다. – stibstibstib

+0

이것은 사용자 정의 컨트롤입니까, 아니면 서버 컨트롤입니까? –

+0

공공 클래스 리피터 상속 System.Web.UI.WebControls.Repeater .... 그것의 당신은 당신의 ITemplate 속성에 다음 속성을 추가 할 필요가 향상된 서버 컨트롤 – stibstibstib

관련 문제