2009-04-16 9 views
1

うまくいけばうまくいけば、私はSystem.Web.UI.WebControls.Repeaterを拡張するカスタムリピータコントロールを作成しました。私はこのコントロールに2つのITテンプレートプロパティを追加し、必要なときにこれらを所望の方法で追加しました。すべて正常に動作していますが、Visual Studioでこれらの新しいテンプレートが認識されているという問題が発生しています。カスタムWebコントロール、ITemplateが認識されない

私は例えば、ページへのリピーターを追加します。

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

すべてが働いている(ウー!)と私は、属性のNewProperty '、私が追加したプロパティを追加した場合、インテリセンスで見ることができますVisual Studioで期待どおりに(woo!)。残念ながら、新しいITemplateはIntellisenseを介して利用できませんが、これはそこにいる私の知識から想起されなければなりません(ブー!)。

検証(XHTML 1.0暫定):新しいテンプレートも「問題」は、次のメッセージを強調している要素「newtemplateは」はサポートされていません。

それはカスタムリピータ作品をコンパイルし、彼らは、それを整理して素晴らしいことだ迷惑の多くはでする必要があるとして、テンプレートが振る舞うときなど任意の手段によって、大きな問題ではありません。

ありがとうございました!

スティーブ

答えて

2

XHTMLでは、要素名が小文字で始まることが必要です。 HTMLは大文字と小文字を区別しませ

出典:プロパティが表示されるようにするために、次のように、あなたはあなたの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

関連する問題