我正在尝试仅使用ImageButton控件进行客户端脚本执行。我可以使用OnClientClick属性指定要执行的客户端脚本,但如何阻止它在每次用户单击时尝试发布?单击此按钮时没有理由发布。我已将CausesValidation设置为False,但这并不能阻止它发布。
我正在尝试仅使用ImageButton控件进行客户端脚本执行。我可以使用OnClientClick属性指定要执行的客户端脚本,但如何阻止它在每次用户单击时尝试发布?单击此按钮时没有理由发布。我已将CausesValidation设置为False,但这并不能阻止它发布。
我知道这个问题已经有了答案,但一个简单的解决方法是在HTML onclick方法(即ASPX OnClientClick方法)中返回false,例如:
<asp:ImageButton ID="ImageNewLink" runat="server"
ImageUrl="~/images/Link.gif" OnClientClick="DoYourStuff(); return false;" />
返回 false 可以阻止浏览器向服务器发起请求,即停止 .NET 回传(postback)。
OnClientClick
中加入return false;
,它就可以工作了。 - actaram以下是一种不与其他控件的后台处理功能冲突的实现方式:
定义按钮,示例代码如下:
<asp:Button runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="alert('my client script here');my" />
<script type="text/javascript">
function my__doPostBack(eventTarget, eventArgument) {
//Just swallow the click without postback of the form
}
</script>
编辑:天啊,有些肮脏的技巧让我感觉需要洗个澡才能让asp.net按照我的意愿工作。
<asp:imagebutton runat="server" PostBackUrl="javascript:void(0);" .../>
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;" />
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="yourmethod(); return false;" />
<script type="text/javascript">
function yourmethod() {
__doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3);
}
</script>
protected void Page_Load(object sender, System.EventArgs e)
{
if (this.IsPostBack) {
string eventTarget = this.Request("__EVENTTARGET") == null ? string.Empty : this.Request("__EVENTTARGET");
string eventArgument = this.Request("__EVENTARGUMENT") == null ? string.Empty : this.Request("__EVENTARGUMENT");
}
}
<image src="..." onclick="DoYourThing();" />
asp:Literal
控件,并在代码后台动态设置文本,例如:myLiteral.Text = "<img src=\"asdf\" onclick=\"DoYourThing();\" />";
- Joseph Yaduvanshi<asp:Image runat="server" .../>
我相信你可以将客户端的onclick
事件添加到其中。
OnClientClick
编写脚本,并使用PostBackUrl="javascript:void(0);"
避免回发。<div class="close_but">
<asp:ImageButton ID="imgbtnEChartZoomClose" runat="server" ImageUrl="images/close.png" OnClientClick="javascript:zoomclosepopup();" PostBackUrl="javascript:void(0);" />
</div>
使用OnClientClick编写您的脚本,同时使用PostBackUrl="javascript:void(0);"避免回传