2010-07-19 6 views
1

J'ai une page ASP avec un asp: DropDownList (avec AutoPostBack = "true") de sorte que lorsque l'utilisateur le change, il recharge les données appropriées.ASP.NET Pas de publication sur asp: ImageButton

Sous ce contrôle j'ai une liste de UserControls, qui inclut un éditeur tinymce (lié à un: TextBox) et un asp: ImageButton pour enregistrer les données. Lorsque vous cliquez sur ImageButton, les applications envoient les données de publication via ajax à la même page (__EVENTARGUMENT, __EVENTTARGET, etc ...). Pourquoi charge-t-il cette page ajax, et comment l'empêcher? Je mets à jour la valeur dans la base de données dans le gestionnaire d'événement OnClick sur le ImageButton, donc tout ce que j'ai besoin de faire, c'est obtenir ride de cet appel ajax.

Des idées?

+0

-vous qu'il est fait une requête Ajax: utilisez-vous un UpdatePanel? –

Répondre

0

Vous n'avez pas déclaré que vous utilisiez un UpdatePanel, mais c'est sans doute la manière dont vous avez implémenté les appels ajax. Dans ce cas, vous devez ajouter un élément déclencheur pour exclure l'événement ImageButton de ajax:

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

Solution 1

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

OU Solution 2

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

En plus (solution 2), votre méthode javascript peut être dans ce formulaire

<script type="text/javascript"> 
    function yourmethod() { 
    __doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3); 
    } 
</script> 

dans le code derrière

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"); 
    } 
} 
Questions connexes