2016-05-03 4 views
1

J'ai construit un CompositeControl dans ASP.Net et maintenant j'ai du mal à maintenir le ViewState de 3 instances du Contrôle sur la page d'hébergement. Mon CompositeControl a une propriété "HeaderText" et les 3 instances de CompositeControl ont la valeur de la première instance de contrôle sur la page. Par exemple: Si le premier contrôle a HeaderText = "Test 1", alors tous les autres contrôles ont aussi HeaderText = "Test 1".Problèmes avec ViewState de CompositeControl

Pendant le débogage, j'ai découvert que l'opérateur set de la propriété est appelé 2 fois. Quand je trace l'opérateur de jeu avec Debug.WriteLine() sorties, la sortie ressemble à:

HeaderText of Control 1 = "Test 1" 
HeaderText of Control 2 = "Test 2" 
HeaderText of Control 3 = "Test 3" 
HeaderText of Control 1 = "Test 1" <-- Why is the set operator called 2 times for each Control? 
HeaderText of Control 2 = "Test 1" 
HeaderText of Control 3 = "Test 1" 

Répondre

0

Juste au cas où quelqu'un d'autre connaît ce comportement: Je me suis retourné sur la mise au point du « code externe » et compris que J'ai accidentellement ajouté la propriété au fichier skin, aussi. Par conséquent, l'opérateur set de HeaderText a été appelé 2 fois ... difficile de trouver cette erreur.