2010-08-10 16 views
0

J'ai utilisé ce,Pourquoi cela ne fonctionne-t-il pas sur asp.net?

<a title="Logout" onclick="javascript:document.getElementById('ctl00_ContentPlaceHolder1_LbLogout').click();" href="#" class="logout">Logout</a></li> 
<asp:LinkButton ID="LbLogout" runat="server" style="display:none" 
    onclick="LbLogout_Click">Sign out</asp:LinkButton> 

La balise d'ancrage ne semble pas tirer mon linkbuttons événement onclick ...

Répondre

2

Vérifiez s'il y a une erreur javascript. Regardez aussi la source de la page et voyez si l'identifiant correspond à votre contrôle et à votre code javascript. Essayez de changer le nom du contrôle pour utiliser UniqueID plutôt que le contrôle plutôt que de le coder directement s'il a une hiérarchie de modèles de nommage différente.

<a title="Logout" onclick="javascript:document.getElementById('<%= Lblogout.UniqueID %>').click();" href="#" class="logout">Logout</a></li> 
0

En plus de la question du nom:

  • vous devez return false à partir d'un gestionnaire lien onclick, sinon le lien # sera suivi, l'annulation de toute navigation qui pourrait se produire de l'autre lien clic (et en faisant défiler la page vers le haut);

  • ne pas utiliser javascript: préfixes dans les attributs des gestionnaires d'événements. Ils ne font rien. Vous pensez à javascript: pseudo-URL. Ce qui ne devrait jamais être utilisé de toute façon; Vous ne pouvez pas activer l'action par défaut d'un lien (pour naviguer dans la page) en appelant le click(). Tout click() va exécuter n'importe quelle action JS onclick qui lui est associée. Si vous voulez naviguer dans la page, vous devrez le faire manuellement en réglant location.href= link.href;

  • ne pas utiliser un lien pour quelque chose avec un effet actif, comme la déconnexion. Ce devrait être un bouton de forme normale. Vous pouvez toujours utiliser CSS pour le styliser afin qu'il ressemble à un lien.