2010-08-10 56 views
0

我用这个,为什么不在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> 

锚标签似乎不火我了LinkBut​​ton onclick事件......

回答

2

检查是否有任何JavaScript错误。也看看页面源代码,看看你的控件和你的javascript代码之间的id是否匹配。尝试将控件名称更改为使用UniqueID,而不是直接编码,以防命名模板层次结构不同。

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

除了命名问题:

  • 您必须return false从链接onclick处理程序,否则#链接将接踵而至,消除可能从其他的链接点击发生任何导航(并将页面滚动到顶部);

  • 请勿在事件处理程序属性中使用javascript:前缀。他们什么都不做。你在考虑javascript:伪网址。无论如何,这绝不应该被使用;

  • 您无法通过调用click()来激活链接的默认操作(浏览页面)。所有click()将执行任何onclick与其关联的JS操作。如果你想浏览页面,你必须手动设置location.href= link.href;

  • 请勿将链接用于具有主动效果的内容,例如注销。它应该是一个普通的形式按钮。您始终可以使用CSS来设置它的样式,使其看起来像一个链接。