1

System.Web.UI.WebControls.Repeater を拡張するカスタム Repeater コントロールを作成しました。このコントロールに 2 つの ITemplate プロパティを追加し、必要に応じて目的の方法で追加します。すべてが問題なく動作していますが、これらの新しいテンプレートが認識される Visual Studio で問題が発生しています。

ページにリピーターを追加すると、たとえば次のようになります。

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

すべてが機能しており (woo!)、属性 'NewProperty' を追加すると、追加したプロパティが Visual Studio の Intellisense で期待どおりに表示されます (woo!)。厄介なことに、新しい ITemplate は Intellisense 経由では利用できません。これは、それらがそこにあるという私の知識から思い出す必要があります (ブー!)。新しいテンプレートには、次のメッセージを含む「問題」の下線もあります。

検証 (XHTML 1.0 Transitional): 要素 'newtemplate' はサポートされていません。

コンパイルするとカスタム リピーターが動作し、テンプレートが必要に応じて動作するため、これは決して大きな問題ではありません。

助けてくれてありがとう!

スティーブ

4

1 に答える 1

2

XHTML では、要素名は小文字で始める必要があります。HTML では大文字と小文字が区別されませんが、XHTML では大文字と小文字が区別されます。

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

プロパティを表示するには、次のように PersistenceMode 属性を ITemplate プロパティに追加する必要があります。

[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate NewTemplate
{
   get;
   set;
}
于 2009-04-16T13:08:37.370 に答える