2009-10-04 6 views
0

Est-il possible d'avoir un contrôle de serveur personnalisé avec un seul modèle (ce qui signifie que l'utilisateur peut mettre n'importe quel texte) sans avoir besoin d'un "ItemTemplate" comme dans un contrôle FormView?contrôle de serveur de modèle unique

Je voudrais que le contrôle Source View pour ressembler à ceci

<foo:mycontrol runat="server" id="controlid"> 

utilisateur met tout le contenu HTML qu'ils veulent ici

</foo:mycontrol> 

PLUTÔT DE CE

<foo:mycontrol runat="server" id="controlid"> 

<ItemTemplate> 

met l'utilisateur quel que soit le contenu html qu'ils veulent ici

</ItemTemplate> 

</foo:mycontrol> 

Mon contrôle de serveur personnalisé doit ajouter 2 contrôles de panneau asp.net et le contrôle ajax table pliante. un panneau sera le panneau d'expansion/réduction et l'autre panneau est ce que je voudrais mettre le texte d'utilisateur dans et alors avoir le panneau démontable effondrer et cacher le panneau.

Je sais comment faire cela (du moins je pense) en créant un contrôle serveur composite et en utilisant ITemplate mais qui nécessite la balise enfant <ItemTemplate> dans la vue source.

Des idées?

Répondre

0

Je n'ai pas testé cela, mais je pense que vous pourriez le faire en héritant du contrôle literal ou label, puis en lisant/écrivant dans la propriété Text.

p.s. La prochaine fois que vous postez une question, vérifiez l'aperçu pour voir si elle est lisible et mettez en forme le code avec 4 espaces en avant, donc c'est affiché et la syntaxe en surbrillance.

0

Hmm pourquoi n'utilisez-vous pas une approche où vous venez de spécifier les contrôles à réduire. Par exemple votre déclaration pourrait ressembler

<foo:mycontrol runat="server" id="controlid" TargetControlId="pnlToCollapse" /> 

En interne, votre MyControl obtient une instance de la TargetControlID spécifiée en utilisant la méthode FindControl (here's a recursive version). La même chose pourrait être faite pour le 2e panneau dont vous avez besoin.

Votre contrôle serveur prend donc simplement les informations de configuration et ne restitue rien, mais contrôle le rendu des autres panneaux dans ce cas. C'est une solution beaucoup plus flexible à mes yeux.

0

Juri,

je aurais dû préciser que ce contrôle pourrait être utilisé par des non-développeurs ou les développeurs qui nous ne voulons pas exiger trop de connaissances de la définition des propriétés, donc je suis en train de développer un contrôle où ils le glisserait comme un panneau et entrerait juste le texte et peut-être placer une propriété qui serait le titre. J'ai été en mesure de créer un contrôle de composition que j'ai créé un panneau de titre, le panneau réductible et utilisé le contrôle aspax replapsiblepanel. J'ai dû ajouter un modèle que je préférerais ne pas faire.

Darrell

Questions connexes