2008-10-09 6 views
0

Je suis en train de créer un contrôle utilisateur qui permet aux utilisateurs de faire quelque chose comme ce qui suit:Templated contrôle utilisateur ASP.NET

<uc1:MyControl id="controlThing" runat="server"> 

    <uc1:BoundColumn id="column1" Column="Name" runat="server" /> 
    <uc1:CheckBoxBoundColumn id="column2" Column="Selector" runat="server" /> 
    <uc1:BoundColumn id="column3" Column="Description" runat="server" /> 

    ...etc 

    </uc1:MyControl> 

Il n'y a que certains contrôles je suis d'avis, en plus du fait que vous pouvez avoir beaucoup de n'importe quel type. Je peux imaginer ceci dans XSD, mais je ne suis pas entièrement sûr pour ASP.NET.

Mon voodoo ASP.NET est en train de dessiner un blanc en ce moment .. des pensées?

Répondre

2

Le PersistenceMode.InnerProperty est ce que vous voulez .. Voici le MSDN docs. Faire quelque chose comme ça vous obtiendrez ce que vous voulez:

[PersistenceMode(PersistenceMode.InnerProperty)] 
public ListItem Items { 
    get; set; 
} 

et vous serez en mesure de l'utiliser comme ceci:

<cc1:MyControl runat="server"> 
    <Items> 
     <asp:ListItem Text="foo" /> 
    </Items> 
</cc1:MyControl> 

Vous pouvez également créer vos propres classes personnalisées à utiliser.

0

Est-il possible de remplacer un contrôle existant tel que ListView ou GridView? C'est votre option la plus simple. Mais pour créer votre propre contrôle basé sur un modèle personnalisé, vous devez utiliser ITemplate.

Je n'ai pas fait un mais un google rapide a retourné ceci: http://www.developerfusion.com/article/4410/in-depth-aspnet-using-adonet/2/ il avait l'air bien.

J'ai un livre « développement Microsoft ASP.NET Contrôles serveur et composants » qui le recouvre, mais je n'ai pas lu à travers elle encore indepth (http://www.amazon.com/exec/obidos/ASIN/0735615829/nikhilkothari-20)

0

Je suppose que la partie la plus difficile que je suis préoccupé par est capable de modéliser n'importe quel nombre d'un ensemble donné de contrôles utilisateur dans mon contrôle utilisateur.

<mycontrol id="control1" runat="server"> 
    <templateitem id="bleh1" runat="server" /> 
    <templateitem id="bleh2" runat="server" /> 
    <templateitem id="bleh3" runat="server" /> 
    ..etc 
</mycontrol> 
Questions connexes