2010-08-11 15 views
4

Je ne peux pas le Javascript pour courir après un postback ASP.NET à partir d'un bloc de script client injecté à partir d'une page maîtreexécution de JavaScript après une publication de ASP.NET à partir d'un bloc de script client injecté à partir d'une page maître

Ci-dessous mon la logique de la page maître, et il est frappé sur une publication, j'ai confirmé avec un point d'arrêt.

namespace MyAwesomeProjectThatWillTakeOverTheWorldIfNotForThisIssue 
{ 
    public partial class CommonContent : MasterPage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      Page.ClientScript.RegisterClientScriptBlock(GetType(), 
      "script", 
      "alert('Success!');", 
      true); 
     } 
    } 
} 

Le problème est que la fenêtre d'alerte n'apparaît que sur le premier chargement, mais pas sur la publication.

Qu'est-ce que je ne fais pas correctement?

Répondre

3

Si vous utilisez ASP.NET AJAX, et un gestionnaire de script sur la page, pensez à utiliser ScriptManager.RegisterStartupScript().

+0

+1 Je pense que j'ai initialement fait référence à la mauvaise fonction. – Achilles

+0

@Achilles, honnêtement, je serais mort dans l'eau sans Intellisense, quoi avec les différences subtiles entre les noms de méthodes et la portée (statique vs instance) entre 'ScriptManager' et' Page.ClientScript'. – kbrimington

1

Si cela est un ajax déclenché Postback vous devez utiliser Scriptmanager.registerstartupscript

+0

Essayez de référencer la page enfant actuelle et transmettez-la dans le scriptmanager. – Achilles