A volte capita di scontrarsi con dei problemi che sembrano insormontabili, di solito questo capita in modo particolare quando ci si avvicina alla scadenza della consegna di un applicativo a cui si è lavorato a lungo tempo.
In questi giorni sono alle prese con la consegna di una applicazione web sviluppata in ASP.NET 2.0 che, fino a qualche istante fa, aveva un comportamento decisamente anomalo: cliccando sul classico 'carrello' il numero di articoli inseriti era doppio rispetto al numero inserito sulla textbox della relativa quantità. In pratica ogni inserimento veniva eseguito per ben due volte, anche se una semplice prova con l'oggetto trace faceva supporre il contrario.
La cosa buffa era che in alcuni casi il problema non si verificava. Ad esempio sul server web che utilizzo per lo sviluppo, utilizzando come browser Firefox 1.5 non avevo nessun problema, invece utilizzando IE (sia il 6 che il 7) il problema si verificava costantemente. Mentre sul server di produzione il problema si presentava solo a volte e la sua frequenza sembrava dipendere dall'utente che si connetteva al sito, in ogni caso con Firefox il problema non si presentava neanche qui.
Per fortuna dopo estenuanti ricerche ho avuto la fortuna di trovare questo post:
http://forums.asp.net/thread/1324414.aspx (ultimo post dell'elenco)
In pratica esiste un bug nell'oggetto ButtonField della GridView, questo bug si verifica esclusivamente (spero :-) ) quando si utilizza un ButtonField di tipo Image. Ho corretto il ButtonType in "Link" e ho aggiunto l'immagine come html all'interno della proprietà Text e il problema non si è più verificato.