10
votes

Comment vérifier si UpdatePanel publie-t-il?

Y a-t-il un moyen de déterminer si un code> a effectué un message AJAX similaire à la manière dont nous pouvons utiliser ...

if (Request.IsAjaxRequest() && !Page.IsUpdatePanelPostback)
{
    // Deal with jQuery Ajax
}


0 commentaires

3 Réponses :


3
votes

Essayez Suivant:

var controlName = Page.Request.Params.Get("__EVENTTARGET");
if (!String.IsNullOrEmpty(controlName))
{
     // Use FindControl(controlName) to see whether 
     // control is of UpdatePanel type
}


2 commentaires

Cela pourrait fonctionner mais il ne détecte que un panneau de mise à jour spécifique, n'est-ce pas? Je suis après une solution plus «générique» qui détecte tout UpdatePanel.


Aucun problème, vous pouvez utiliser FindControl () pour voir si ce contrôle est de type UpdatePanel ... j'ai mis à jour ma réponse



15
votes

Je ne sais pas si cela fonctionnera mieux que votre solution, mais avez-vous essayé?: XXX


2 commentaires

Je me demande si je pouvais utiliser 'scriptmanager.getcurrent (page) .isinasyncpospostback' sur ses propres contrôles, car je suppose que d'autres contrôles des extensions ASP.NET AJAX pourraient tirer une demande Ajax que je ne veux pas ramasser.


Cela vaut la peine d'être coupé, je suppose.



17
votes

Vous pouvez vérifier si le potage était asynchrone et s'il a été émis par un panneau de mise à jour en regardant ces propriétés:

ScriptManager.GetCurrent(Page).IsInAsyncPostback
ScriptManager.GetCurrent(Page).AsyncPostbackSourceElementID


0 commentaires