2013-02-27 2 views
1

Je suis en train d'enregistrer script à l'événement tique de la minuterie, mais rien ne se passe,scénario registre des clients à l'événement Tick de minuterie

protected void UpdateTimer_Tick(object sender, EventArgs e) 
     { 
       ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "ShowDialog()", true); 
     } 

Essayé ScriptManager.RegisterStartupScript aussi bien, mais cela ne fonctionne pas. J'ai essayé d'appeler simple alerte mais ne fonctionne pas aussi bien. RegisterClientScriptBlock ne fonctionne que lorsqu'une page est chargée pour la première fois.

+0

Avez-vous une erreur? Êtes-vous à l'intérieur de la méthode Tick? –

+0

@ToonCasteele Pas d'erreur, Oui, il va à l'intérieur de la méthode Tick. – Rishi

Répondre

2

Vous ne pouvez pas vous attendre à ce qu'il fonctionne lorsque vous êtes appelé sur un thread d'arrière-plan sur le serveur.

Vous devez à la place enregistrer un bloc de script client qui initie un côté client temporisateur - regardez javascript setTimeout.

par exemple. la charge de la page

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "window.setTimeout(ShowDialog, 1000);", true); 

ou avec des arguments ...

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "window.setTimeout(function(){ShowDialog(arg1,arg2);}, 1000);", true); 
+0

Donc, maintenant, il est possible d'exécuter certains clients JS dans un événement tick le long des codes C#? – Rishi

+1

L'événement C# tick se déclenche une fois que la page a déjà été diffusée dans le navigateur client, vous ne pouvez donc pas modifier ce qui se trouve dans le navigateur. –

+0

Essayé votre approche, mais il y a une erreur dit « Erreur: ReferenceError: ShowDialog n'est pas défini fichier Source: url ligne: 452 » – Rishi

Questions connexes