2009-07-19 9 views
0

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?

Répondre

0

L'état d'historique ASP.NET AJAX provoque ce genre de demandes. Lorsqu'un client utilise notre application Web, nous suivons les mises à jour partielles de page en utilisant EnableHistory = "true" sur le ScriptManager. Si le client clique sur le bouton Précédent dans son navigateur, le ScriptManager lance une requête asynchrone, en utilisant lui-même comme EventTarget.

0

Avez-vous essayé de mettre le updatemode de l'updatepanel à "conditionnel"? Je pense que cela résoudrait votre problème.

Plus d'informations ici: http://codeclimber.net.nz/archive/2007/05/24/updatemode-default-value-for-the-updatepanel-is-always.aspx

+0

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. –

Questions connexes