2011-05-22 6 views
0

J'ai un bouton, avec le correspondant aspx étant ceci:Bouton ne provoquant pas postback

<asp:Button runat="server" ID="checkall" OnClientClick="setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

En effet, la logique que je veux arriver à ce bouton particulier du côté du serveur est validation qui se produit tous les temps dans l'événement Page_Load, et en outre, je veux qu'une fonction Javascript soit appelée en premier. Cependant, lorsque je clique sur le bouton, il ne semble pas provoquer une publication la première fois, seulement la deuxième fois qu'il est publié. Comment puis-je garantir que la fonction côté client est exécutée en premier, puis qu'une publication est générée?

+0

Pourriez-vous s'il vous plaît nous afficher le fichier html généré? – TweeZz

+1

J'ai rencontré cela lorsque la validation sur la page avait échoué. Cela pourrait valoir la peine d'y jeter un coup d'œil. –

Répondre

0

Cela m'est arrivé à quelques reprises. La cause était que ma fonction spécifiée dans OnClientClick renvoyait 'false'.

Hoe est-ce que ça ressemble à 'setAllWeeks'? Peut-être que ça revient faux?

+0

ok, sry, je me trompe. Il devrait y avoir 'return setAllWeeks (true);' comme votre OnClientClick. – TweeZz

+0

La fonction renvoie void. – Puppy

1

Est-ce que le code suivant:

<asp:Button runat="server" ID="checkall" OnClientClick="return setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

Et dans la fonction setAllWeeks() procédez comme suit:

function setAllWeeks(val) { 

    //If everything all right 
    If(True) 
    { 
     //Do something 
     return true; 
    } 
    else 
     return false; 
} 

Si les comportements de fonction est tout droit de retour vrai sinon retourne faux.

Remarque: Tous les chemins de la fonction doivent renvoyer une valeur (valeur booléenne).

Questions connexes