1 votes

Appel de plusieurs fonctions javascript sur un événement

J'utilise l'ajaxcontroltoolkit et j'essaie d'appeler quelques fonctions sur un événement de changement d'onglet.

Je veux appeler plus d'une fonction js à partir de ma fonction OnClientActiveTabChanged mais je reçois toujours l'erreur suivante

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR      1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET     CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Tue, 24 Nov 2009 12:31:43 UTC

Message: Expected '}'
Line: 202
Char: 181
Code: 0
URI: http://localhost/.../.../....aspx?ID=1000&propertyFrameWidth=1234&propertyFrameHeight=603&userId=9&employeeId=526&CCId=2&DbConnTag=TSDBConnection

Mise à jour, je viens de remarquer que cela se produit même pour les déclarations d'alerte de base

OnClientActiveTabChanged="alert('testone');alert('testtwo');"

Ligne donnant le problème :

Sys.Application.add_init(
function() 
{
    $create(AjaxControlToolkit.TabContainer, 
            {
             "activeTabIndex":0, 
             "clientStateField":$get("ctrlJobPropertiesView_tbcTabContainer_ClientState")
            },
            {
             "activeTabChanged":alert('testone');alert('testtwo');
            },
            null, 
            $get("ctrlJobPropertiesView_tbcTabContainer")
        );
});

3voto

Alex Bagnolini Points 7403

Coup aveugle : essayez de l'envelopper dans une fonction anonyme, comme :

"activeTabChanged":function() { alert('testone');alert('testtwo'); }

EDIT Le mien résout le problème, gs est le plus complet.

0voto

Naveed Butt Points 1187

Essayez d'utiliser ceci :

function callMultiple() {
   func1();
   func2();
   func3();
}

OnClientActiveTabChanged="callMultiple"

0voto

Georg Schölly Points 63123

Voici votre problème :

{"activeTabChanged":alert('testone');alert('testtwo');}

Je suppose que ce que vous voulez c'est que activeTabChanged est une fonction, mais alert("something") ne renvoie pas une fonction mais rien.

Le point-virgule est syntaxiquement incorrect dans un dictionnaire. Vous voulez assigner une fonction à activeTabChanged :

"activeTabChanged":function() { alert("testone"); alert("testtwo"); }

Il n'est pas nécessaire d'utiliser des fonctions anonymes. Vous pouvez également utiliser des fonctions normales.

function on_activeTabChanged() {
     // do something
}

// much later in the code
$create(AjaxControlToolkit.TabContainer,
        {"activeTabChanged":on_activeTabChanged});

0voto

Amarghosh Points 33957

Mettez-les entre guillemets

"activeTabChanged":"alert('testone');alert('testtwo')";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X