2009-04-16 9 views
1

Espérons que ce soit facile, j'ai créé un contrôle de répéteur personnalisé qui étend System.Web.UI.WebControls.Repeater. J'ai ajouté deux propriétés ITemplate à ce contrôle et les ajoute si nécessaire et de la manière souhaitée. Tout fonctionne très bien mais j'ai un problème avec Visual Studio ayant ces nouveaux modèles reconnus.Contrôle Web personnalisé, ITemplate non reconnu

Lorsque j'ajoute le répéteur à la page, par exemple:

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

Tout fonctionne (! Woo) et quand j'ajouter de la NewProperty 'les attributs, une propriété que j'ai ajouté, peut être vu dans IntelliSense dans Visual Studio comme prévu (woo!). Malheureusement si les nouveaux ITemplate ne sont pas disponibles via Intellisense et cela doit être rappelé de ma connaissance d'eux étant là (boo!). Le nouveau modèle a aussi le 'problème' souligne le message suivant:

Validation (XHTML 1.0 Transitional): Element 'NewTemplate' est pas pris en charge.

Ce n'est pas un problème majeur par tous les moyens que lors de la compilation des travaux de répéteur personnalisés et les modèles se comportent comme ils ont besoin pour, il est plus d'une gêne qui serait grande pour trier.

Merci pour toute aide!

Steve

Répondre

2

XHTML exige que les noms d'élément commencent par un Minuscules. HTML n'est pas sensible à la casse, alors que XHTML l'est.

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

Pour que la propriété soit visible, vous devez ajouter l'attribut PersistenceMode à vos propriétés ITemplate comme suit:

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

Salut Jose, je ne suis pas sûr que vous Nous avons compris que le problème était réglé en tant que ItemTemplate, HeaderTemplate, etc. Le problème est le fait que Visual Studio ne reconnaît pas les modèles, donc il suppose qu'ils sont des éléments XHTML qu'ils ne sont pas. J'espérais qu'il y aurait un moyen de s'assurer que VS les connaisse. – stibstibstib

+0

S'agit-il d'un contrôle utilisateur ou d'un contrôle serveur? –

+0

Classe publique Répéteur Hérite System.Web.UI.WebControls.Repeater .... Il est un contrôle serveur amélioré – stibstibstib

Questions connexes