UpdatePanel / Alertes javascript [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007
-
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007
-
Bonjour,

Je cherche un moyen pour afficher une alerte javascript à partir du code behind, plus précisément à partir du code d'un bouton se situant dans un updatepanel.

Donc j'ai une page contenant un UpdatePanel, celui-ci contient un simple bouton. Dans l'event du bouton, j'effectue un appel sql (par exemple) et ensuite je voudrais renvoyer au client une alerte javascript contenant la réponse.

Jusqu'à présent, j'envoi une exception avec comme message d'erreur le message que je veux afficher. Celà me renvoit une alerte javascript contenant mon message mais cette technique ne me semble pas très "catholique" :p

ex:

protected
void Button1_Click(
object sender,
EventArgs e)
{

      // le code d'accès sql

      if (succeeded)
            
throw
new
Exception(
"uééé ça a marché !");

      else
            throw
new
Exception(
"mouaaarrff !");
}

est-ce que quelqu'un aurait une idée ?

merci d'avance.

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
bonjour,

ScriptManager.RegisterStartupScript(typeof(lapage), "alert", "alert('coucou');", true);

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007

Bonjour Cyril,

Je viens de tester ton code qui ne fonctionnait pas seul. J'ai du y ajouter updatePanel.Update(); pour qu'il lance réellement le script. Je n'ai pas utilisé de triggers, le "problème" viendrait-il de là ?

Merci pour ta réponse.
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007

Ok, je viens de tester avec triggers et ça fonctionne sans faire un update manuellement.

Encore merci !

Le code :

public
void RegisterAsyncScript(
Control control,
string key,
string script)
{
      
ScriptManager.RegisterStartupScript(control, control.GetType(), key, script,
true);
}

public
void ShowAsyncMessageBox(
Control control,
string key,
string message)
{
      RegisterAsyncScript(control, key,
"alert('" + message.Replace(
"'",
"\\'") +
"');");
}
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour, effectivement il faut absolument qu'un updatepanel soit actif pour utiliser ca, mais si tu mets ton bouton directement dans l'updatepanel tu n'as pas besoin de trigger donc pas besoin d'appeller la méthode Update()

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007

L'updatepanel était bien actif et le bouton était directement dans celui-ci.

<asp:UpdatePanel
ID="upLogin"
runat="server"
ChildrenAsTriggers="false"
UpdateMode="Conditional">
      <ContentTemplate>
            <asp:Button
ID="Button1"
runat="server"
Text="Button"
OnClick="Button1_Click"
/>
      </ContentTemplate>
</asp:UpdatePanel>

Dans le code du bouton, il y avait donc le code et... rien apparaissait. Je devais faire appel à la méthode Update() pour que l'alerte soit affichée ou ajouter un trigger.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Pourquoi utilises tu le ChildAsTriggers=false ??? en le mettant à false tu dis que les enfants ne déclenchent pas de triggers ... en le mettant à true (valeur par défaut) tu n'auras rien à faire.

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
8
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007

Ah ok, je n'avais pas compris ça en lisant la doc. Je vais modif directement, merci !