2010-08-17 20 views
0

Je voudrais définir le modèle pour modifier/insérer et afficher dans mon contrôle FormView personnalisé. Mais je suis arrivé ces quelques exceptions prèsformulaire et externe IBindableTemplate

Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.Table'.

public class CustomFormView : FormView 
    { 
     [PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(FormView), BindingDirection.TwoWay)] 
     public IBindableTemplate FormTemplate { get; set; } 

     protected override void OnInit(EventArgs e) 
     { 
      ChangeMode(FormViewMode.Edit); 
      if (FormTemplate != null) 
      { 
       if (CurrentMode == FormViewMode.Edit) 
       { 
        FormTemplate.InstantiateIn(this); 
       } 
      } 
      base.OnInit(e); 
     } 
    } 

édité:

dans la première étape, j'ai créé le nouveau contrôle utilisateur et ajouté un formview ("FV")

public partial class Form : UserControl 
{ 
    private IBindableTemplate _template = null; 

    [PersistenceMode(PersistenceMode.InnerProperty), 
    TemplateContainer(typeof(FormView), System.ComponentModel.BindingDirection.TwoWay)] 
    public IBindableTemplate FormTemplate { set;get } 

    protected void Page_Init() 
    { 
     if (FormTemplate != null) 
     { 
      FV.InsertItemTemplate = FV.EditItemTemplate = FormTemplate; 
      if (!IsPostBack) FormTemplate.InstantiateIn(FV); 
     } 
    } 
} 

Maintenant, je veux convertir ce contrôle d'utilisateur à nous b contrôle.

Je vous serais reconnaissant si vous pouviez répondre à ma question.

Répondre

1

Qu'essayez-vous exactement de faire?

Quoi que vous essayiez de faire, vous vous trompez.

TemplateContainer(typeof(FormView)) Ceci n'est pas possible.

Vous devez fournir votre propre type en héritant de IDataItemContainer.

Edit:

Je ne recommanderais pas mettre tout cet effort juste parce que vous voulez avoir 1 modèle pour éditer et insérer. Mieux vaut mettre le même contenu dans les deux modèles. L'expérience apprend qu'avec le temps, vous aurez besoin d'une fonctionnalité distincte pour l'édition et l'insertion.

+0

Cher Jeroen, merci pour votre réponse, j'ai changé de poste, pourriez-vous m'aider s'il vous plaît à trouver la solution, merci. – Mironline

+0

Pourquoi voulez-vous un modèle? Voulez-vous utiliser un modèle pour Modifier et Insérer? – Jeroen

+0

exactement, je ne suis pas vraiment intéressé par la création d'un modèle unique par la propriété, est-il possible de cloner "insert template", et définir cela pour le modèle d'édition?! Ou sth. comme ça ? merci- – Mironline