J'ai plusieurs UpdatePanels sur une page, chacun étant rempli par des contrôles assez coûteux. Sur les publications asynchrones, tous les UpdatePanels sont initialisés, mais seules les mises à jour UpdatePanel sont envoyées au client. Maintenant je voudrais initialiser seulement le UpdatePanel qui exige réellement une mise à jour.__Eventtarget défini sur l'ID ScriptManager
http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx suggère de décoder le paramètre __EVENTTARGET
pour trouver le contrôle à l'origine de la publication. forums.asp.net/p/1385862/2947336.aspx suggère de décoder la valeur Request.Form correspondant à l'ID unique ScriptManager. Les deux semblent fonctionner correctement. Toutefois, notre système de production (IIS 6, .NET 3.5) signale fréquemment des demandes où __EVENTTARGET
est défini sur l'ID unique du ScriptManager (MyScriptManager). Dans ces cas, le paramètre ScriptManager est également décodé en MyScriptManager | MyScriptManager au lieu de UpdatePanelId | EventTargetId.
Il a été observé pour Firefox 3.0 et 3.5 ainsi que IE 6, 7 et 8. Cependant, je n'ai pas pu le reproduire. Est-ce que quelqu'un a une idée de ce qui fait que les navigateurs de nos clients affichent ces valeurs?
J'utilise déjà UpdateMode.Conditional. Toutefois, cela semble avoir seulement deux effets: Seul le contenu des panneaux de mise à jour mis à jour est envoyé au navigateur et la propriété protégée UpdatePanel.RequiresUpdate est initialisée avant l'événement OnPreRender. Cependant, je veux omettre de créer les contrôles enfants du UpdatePanel, ce qui arrive avant (OnInit/OnLoad). Par conséquent, j'essaie de prédire quels panneaux de mise à jour décideront plus tard qu'ils nécessitent une mise à jour. –