2009-04-16 5 views
1

Ich hoffe, eine einfache, ich habe eine benutzerdefinierte Repeater-Steuerelement erstellt, die System.Web.UI.WebControls.Repeater erweitert. I Dieses Steuerelement hat zwei ITemplate-Eigenschaften hinzugefügt und fügt diese bei Bedarf und in der gewünschten Weise hinzu. Alles funktioniert einwandfrei, aber ich habe ein Problem in Visual Studio, dass diese neuen Vorlagen erkannt werden.Benutzerdefinierte Web-Steuerung, ITemplate nicht erkannt

Wenn ich den Repeater auf der Seite hinzufügen, zum Beispiel:

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

Alles funktioniert (! Woo), und wenn ich die Attribute ‚NewProperty‘ hinzufügen, eine Eigenschaft, ich hinzugefügt haben, können in Intellisense zu sehen in Visual Studio wie erwartet (woo!). Ärgerlich, obwohl die neuen IT-Vorlagen nicht über Intellisense verfügbar sind, und dies muss von meinem Wissen, dass sie da sind, zurückgerufen werden (boo!). Die neue Vorlage auch das 'Problem' hat unterstreicht die folgende Meldung:

Validation (XHTML 1.0): Element 'NewTemplate' wird nicht unterstützt.

Es ist kein großes Problem mit irgendwelchen Mitteln, wie wenn die benutzerdefinierten Repeater Arbeiten zusammengestellt und die Vorlagen so verhalten, als sie benötigen, um es eher ein Ärgernis ist, dass aussortieren groß sein würde.

Danke für jede Hilfe!

Steve

Antwort

2

XHTML erfordert, dass Elementnamen mit einem Kleinbuchstaben beginnen. HTML ist nicht Groß-und Kleinschreibung, während XHTML ist.

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

Damit das Objekt sichtbar sein, müssen Sie das Attribut PersistenceMode auf Ihre ITemplate Eigenschaften hinzufügen wie folgt:

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

Hallo Jose, ich bin nicht sicher, dass du‘ Ich habe das Problem verstanden, da ItemTemplate, HeaderTemplate usw. groß geschrieben sind. Das Problem ist die Tatsache, dass Visual Studio die Vorlagen nicht erkennt, so dass angenommen wird, dass sie XHTML-Elemente sind, was sie nicht sind. Ich hoffte, es gibt einen Weg, um sicherzustellen, dass VS über sie weiß. – stibstibstib

+0

Ist dies ein Benutzersteuerelement oder ein Serversteuerelement? –

+0

Public Class Repeater Erbt System.Web.UI.WebControls.Repeater .... Es ist eine erweiterte Server-Steuerelement – stibstibstib