2011-05-18 5 views
0

Je suis en train d'étendre la classe formview pour créer un formview custome qui a un contrôle serveur + formview + un autre contrôle serveur en dessous.Création de FormView personnalisé

le problème est que je ne peux pas utilise

protected override void OnInit(EventArgs e) 
    { 
     Parent.Controls.Add(FormViewButtons); 
     Parent.Controls.Add(this); 
     Parent.Controls.Add(MessageContainerControl); 
    } 

parce que je reçois exception: "La collection de contrôle ne peut pas être modifié pendant DataBind, Init, charge, prerender ou Décharger phases.".

des idées? réservoirs.

Répondre

0

Vous devez être créer un Composite Custom Control, pas l'extension du FormView.

+0

réservoir u. lorsque vous utilisez System.Web.UI.WebControls.FromView dans la page, nous pouvons cliquer sur la petite flèche pour modifier ItemTemplate et EditItemTemplte et ... maintenant comment je peux activer cette fonctionnalité dans mon contrôle composite. –

+0

Dans ce procédé CreateControlHierarchy vide virtuel protégé() { TextBox t = new TextBox(); Etiquette l = new Label(); t.Texte = Texte; l.Texte = Titre; Contrôles.Ajouter (l); Commandes.Ajouter (t); } Comme dans cet exemple, ils ajoutent un TextBox et un libellé au contrôle composite. C'est ici que vous ajouteriez vos boutons FormViewButtons, FormView et MessageContainerControl. – TheGeekYouNeed

+0

Je n'ai pas compris ce que tu voulais dire. maintenant j'ai mes commandes composites personnalisées, composées de trois contrôles. maintenant tout ce que je veux est d'activer mon contrôle composite pour montrer une petite flèche comme FormView générique pour éditer son modèle d'élément –

0

Je ne comprends pas vraiment pourquoi le FormView manipuler les contrôles de la page. Je pense que vous devriez étendre la page et sur ce que vous devriez faire ce que vous voulez.