2009-04-21 6 views
0

ceci est mon scénario:
J'ai une page avec un espace réservé. la page ajoute dynimtiquement différents types de contrôles (nous ne voulons pas afficher certaines données - obtenir l'id via querystring ou postback, car nous avons aussi un arbre) à cet espace réservé.
les contrôles ajoutés contiennent tous, plus ou moins, une zone de texte (nom de l'élément d'affichage), une case à cocher (état actif de l'élément d'affichage) et un bouton de sauvegarde qui déclenche une méthode dans ce contrôle web. Maintenant mon problème est vraiment évident: comme j'ajoute le contrôle dynamiquement (et pour chaque condition:! Postback et Postback), la méthode de sauvegarde dans le contrôle ainsi ajouté, ne tirera pas - quoi que je ne ...Trigger-Méthode de WebControl n'est pas renvoyé

je suis simplement stupide pour obtenir le truc :)

quelques arrière-scène-infos (workflow):

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!this.Page.IsPostBack) 
    { 
     this.SelectedElement = SomeMagicMethod(); 
    } 
} 

protected void NodeSelected(object sender, TreeViewNodeEventArgs e) 
{ 
    this.SelectedElement = SomeOtherMagicMethod(); 
} 

protected override void OnLoadComplete(EventArgs e) 
{ 
    // we have to take this life-cycle! 
    if (this.SelectedElement!= null) 
    { 
     this.DisplayElement(); 
    } 
} 

private void DisplayElement() 
{ 
    var UC = this.LoadControl(UCPath) as DataTypeUC; 
    if (UC == null) 
    { 
     return; 
    } 

    UC.ID = EditCampaignFolderUCID; 
    UC.SetData(this.SelectedElement); 
    UC.DataBind(); 
    this.phContent.Controls.Add(UC); 
} 
+0

Pouvez-vous montrer le balisage et le code derrière pour le contrôle de l'utilisateur que vous ajoutez?/Asger – asgerhallas

Répondre

0

l'astuce est: reinstatiate tout oninit, et dans l'ordre que le viewstate a été sauvé à la dernière requête ... délicate délicate

0

Tout en ajoutant dynamiquement des contrôles, vous ll doit également câbler l'événement du bouton de sauvegarde chaque fois (c'est-à-dire, si le bouton de sauvegarde est généré dynamiquement).

Questions connexes