如果没有显式定义OnClick事件,则停止为asp设置onclick事件:LinkBut​​ton

时间:2010-02-25 03:07:27

标签: c# asp.net

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

使用案例:

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

包含以下内容的解决方案无济于事:

  1. 使用任何asp.net Ajaxtoolkit
  2. 动态切换控件类型(即如果朋友== 1使用asp:超链接) - 我想避免这种情况,因为它不可扩展。可能有很多情况我希望asp:Link标签进行回发或不进行回发,具体取决于用户上下文或用户属性

  3. 使用OnClientClick(我使用jQuery想避免这种情况)

  4. 尽可能有用的解决方案:

    如果我在运行时可以看到服务器端是否在asp:LinkBut​​ton标记上显式设置了OnClick事件,这也可以解决我的问题。任何想法?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

http://forums.asp.net/t/1129106.aspx

此链接说明了如何在运行时查看服务器端是否使用反射

显式设置了OnClick事件