2013-03-11 14 views
5

Recentemente, abbiamo testato i nostri prodotti su IE10 e riscontrato un problema relativo al controllo dei pulsanti del server "Asp: ImageButton" non vengono attivati ​​su IE10 con UpdatePanel. E il sotto è il codice di esempio:ImageButton non attiva nuovamente un post su IE10

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     Here is the content. 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="buttonSubmit" /> 
    </Triggers> 
</asp:UpdatePanel> 
<br /> 
<br /> 
<asp:Button ID="buttonSubmit" runat="server" ToolTip="Submit" OnClick="buttonSubmit_Click" /> 
</form> 

lato server:

protected void buttonSubmit_Click(object sender, ImageClickEventArgs e) 
    { 
     ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "alert", "alert('It works.')", true); 
    } 

Qui ci sono due cose che mi ha confuso: Uno è il problema si verifica solo quando ho schierato su IIS e funziona bene quando debugging su VS. I due sono se ho rimosso il tag superiore "br", l'evento sarebbe stato licenziato. Inoltre, se cambio ImageButton su Button, anche l'evento verrebbe attivato.

Quindi, non so se mi manca qualcosa o frainteso il cerchio vitale del controllo ImageButton e Button. Qualsiasi aiuto sarebbe molto apprezzato.

ambienti di test: VS2010, IIS 7.5, IE10 (10.0.9200.16484)

+0

Controlla la mia risposta e gli altri qui: http://stackoverflow.com/a/15129393/127880 Ho il sospetto che il tuo problema abbia una radice nel nuovo bug ImageButton di IE10. Ho installato .NET Framework 4.5 (anche se ho lasciato il mio sito IIS con 3.5) e il problema con IE10 e imagebuttons è stato corretto. –

+1

Grazie per la tua rapida risposta, George. La buona notizia è che funziona semplicemente aggiornando il framework. Grazie ancora. – Troy

+0

Ottime notizie. Ho inviato una risposta in modo che possiamo essere di maggiore aiuto ai passanti –

risposta

6

Basta installare .NET Framework 4.5 in grado di risolvere questo problema.

Questo problema può essere causato dal bug di ImageButton IE10 che implica che IE10 converta erroneamente le coordinate in decimale piuttosto che in numeri interi. Ciò causa il fallimento dei clic di ImageButton in molte, se non la maggior parte, situazioni su IE10.

Questo può risolvere il problema anche se non si passa il pool di applicazioni a .NET Framework 4.5.

Nel mio caso, ho lasciato i pool di app su .NET Framework 3.5. Apparentemente l'installazione di .NET Framework 4.5 sovrascrive alcuni file per altre versioni di framework.

Vedere la sezione soluzioni alternative here

Correlati: IE10 sending image button click coordinates with decimals (floating point values) causing a ParseInt32 FormatException

+1

Attenti a questo. 4.5 è un aggiornamento sul posto, non un aggiornamento affiancato. Se stai già eseguendo siti con meno di 4.0, l'aggiornamento potrebbe causare problemi. Dovrebbe essere retrocompatibile, ma le persone hanno documentato la rottura dei cambiamenti. – David

3

IE10 ha un bug. Se sviluppi una nuova pagina di aspx e ajaxify la pagina con i pannelli di aggiornamento, la pagina non funzionerà correttamente. Nessun evento del server verrà attivato. Ma altri browser faranno il loro lavoro bene. Mi chiedo perché Microsoft non abbia notato/risolto questo problema. Ho gestito il problema con forzatura modalità IE9

<meta http-equiv="x-ua-compatible" content="IE=9" /> 
0

ho cambiato l'ImageButton ad un LinkButton e messo l'immagine pulsante all'interno di esso. Lavori.

0

È possibile fare la stessa cosa nel Page_PreRender

private bool alert; 
protected void buttonSubmit_Click(object sender, EventArgs e) 
    { 

     alert= true; 
     ViewState["alert"] = alert; 
    } 

protected void Page_PreRender(object sender, EventArgs e) 
    { 
     if (ViewState["alert"] != null) 
      alert= (bool)ViewState["alert"]; 
     if (alert) 
     { 
      alert= false; 
      ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "alert", "alert('It works.')", true); 

     } 
    } 

pannello di aggiornamento non funziona correttamente in IE 10 con i clic sul pulsante, immagini ecc

3

Change ImageButton ad un LinkButton e mettere l'immagine dentro di esso.

È una soluzione piacevole, è un lavoro per me.