C# 如果未明确定义onclick事件,请停止设置asp:LinkButton的onclick事件

C# 如果未明确定义onclick事件,请停止设置asp:LinkButton的onclick事件,c#,asp.net,C#,Asp.net,如何设置默认设置,以便在没有为asp:LinkButton标记显式设置OnClick(即asp.net OnClick属性)时,它不会在客户端呈现OnClick(javascript的html属性)属性?默认情况下,asp.net为LinkButton添加onclick='doPostBack….' 使用案例: 页面上有一个LinkButton标签。对于这个页面,如果用户有一个朋友,我只想在点击按钮时运行客户端代码,并且不会因为任何原因想要发回帖子。如果用户有一个以上的朋友,我希望点击触发回发

如何设置默认设置,以便在没有为asp:LinkButton标记显式设置OnClick(即asp.net OnClick属性)时,它不会在客户端呈现OnClick(javascript的html属性)属性?默认情况下,asp.net为LinkButton添加onclick='doPostBack….'

使用案例:

页面上有一个LinkButton标签。对于这个页面,如果用户有一个朋友,我只想在点击按钮时运行客户端代码,并且不会因为任何原因想要发回帖子。如果用户有一个以上的朋友,我希望点击触发回发

包含以下内容的解决方案没有帮助:

  • 使用任何asp.net Ajaxtoolkit
  • 动态切换控件类型(即如果friends==1,则使用asp:Hyperlink) -我希望避免这种情况,因为它是不可伸缩的。在许多情况下,我可能希望asp:Link标记执行回发或不执行回发,具体取决于用户上下文或用户属性

  • 使用OnClientClick(我使用jQuery希望避免这种情况)

  • 如果可能,解决方案将很有帮助:


    若我能在运行时看到服务器端是否在asp:LinkButton标记上显式设置了OnClick事件,这也能解决我的问题。有什么想法吗?

    与其动态切换控件(正如您所提到的,这是一个您不想要的解决方案),不如始终使用
    asp:HyperLink
    并设置
    NavigateUrl
    属性,将页面重定向回自身,并使用某种查询字符串指示单击的内容

    如果您根本不希望发布,只需将
    NavigateUrl
    属性留空即可

    当然,如果页面的其余部分依赖于ViewState等等,那么这将毫无价值。


    此链接说明如何在运行时查看服务器端是否使用反射显式设置了OnClick事件,我对这个解决方案不感兴趣,而且asp:Hyperlink也没有实现IButton界面,因此它不能用作asp:Panel或form的默认按钮,这对于旧的点击enter键很方便。谢谢。我已经回答了我的问题。但是我想添加一个更快更简单的解决方案,使用按钮的Enabled属性来禁用它,而不需要实际删除或重新附加一个click事件