我可以创建一个不回发的ASP.NET ImageButton吗?

Gif*_*guy 7 asp.net post postback submit imagebutton

我正在尝试使用ImageButton控件进行客户端脚本执行.我可以使用OnClientClick属性指定要执行的客户端脚本,但是如何阻止它在每次用户单击时尝试发布?单击此按钮时没有理由发布.我已将CausesValidation设置为False,但这不会阻止它发布.

Cod*_*ber 19

我知道这个问题已经得到解答,但一个简单的解决方案是从HTML onclick方法返回false(即ASPX OnClientClick方法),例如

<asp:ImageButton ID="ImageNewLink" runat="server" 
 ImageUrl="~/images/Link.gif" OnClientClick="DoYourStuff(); return false;"  />
Run Code Online (Sandbox Code Playgroud)

返回false会阻止浏览器将请求发送回服务器,从而停止.NET回发.


Pie*_*ten 5

这是一种可以在不与其他控件的回发功能发生冲突的情况下执行此操作的方法:

像这样定义你的按钮:

<asp:Button runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="alert('my client script here');my" />
Run Code Online (Sandbox Code Playgroud)

OnClientClick 处理程序中结尾的“my”是一种为 asp.net 的 __doPostBack 客户端事件(强制回发)起别名的方法;我们只是通过不执行与此脚本类似的操作来覆盖该行为:

<script type="text/javascript">

function my__doPostBack(eventTarget, eventArgument) {
    //Just swallow the click without postback of the form
}
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:是的,我觉得在经历了一些肮脏的把戏之后我需要洗个澡,以便让 ASP.NET 做我想做的事情。