为什么这不能在asp.net中运行?

时间:2010-08-10 05:10:29

标签: javascript asp.net onclick anchor linkbutton

我用过这个,

<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>

锚标记似乎没有激活我的链接按钮onclick事件...

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

除了命名问题:

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

  • 不要在事件处理程序属性中使用javascript:前缀。他们什么都不做。您正在考虑javascript:伪URL。无论如何都不应该使用;

  • 您无法通过调用click()来激活链接的默认操作(导航页面)。所有click()都将执行与之关联的任何onclick JS操作。如果您要导航页面,则必须通过设置location.href= link.href;

  • 手动执行此操作
  • 不要使用带有活动效果的链接,例如注销。它应该是一个普通的形式按钮。您始终可以使用CSS对其进行样式设置,使其看起来像链接。