ASP.NET没有关于asp的回发:ImageButton

问题描述 投票:1回答:2

我有一个带有asp:DropDownList(带有AutoPostBack =“true”)的ASP页面,这样当用户更改它时,它会重新加载适当的数据。

在该控件下,我有一个UserControl列表,其中包括一个tinymce编辑器(绑定到asp:TextBox)和一个asp:ImageButton来保存数据。

当单击ImageButton时,应用程序通过ajax将回发数据发送到同一页面(__EVENTARGUMENT,__ EVENTTARGET等...)。为什么它加载ajax页面,我该如何防止它?我正在更新ImageButton上的OnClick事件处理程序中的数据库中的值,所以我需要做的就是获取该ajax调用。

有任何想法吗?

asp.net postback imagebutton autopostback
2个回答
0
投票

您没有声明您正在使用UpdatePanel,但这可能是您实现了ajax调用的方式。如果是这样,你需要添加一个触发器来从ajax中排除imagebutton事件:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<Triggers> 
<asp:PostBackTrigger ControlID="ImageButton" />
</Triggers>
<ContentTemplate> </ContentTemplate> 
</asp:UpdatePanel> 

0
投票

解决方案1

<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;"  />

或解决方案2

<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg" 
OnClientClick="yourmethod(); return false;"  />

另外(解决方案2),您的javascript方法可能采用这种形式

<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");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.