title: Button command firing twice with ButtonField inside GridView inside UpdatePanel with FireFox
body: <p>I have an update panel which contains a GridView, inside which is a ButtonField. Whenever I press the button I see Firefox doing two POST's (via Firebug). One gets aborted right away, but does reach the server. This causes problems on my server side code as the command (a copy) gets executed twice.</p>
  
  <p>IE6 and IE8 do not exhibit this behavior.</p>
  
  <p>Anyone know what's causing this or what I can do about it?</p>
  
  <p>I've managed to reproduce the problem to its bare minimum on this page:</p>
  
  <pre><code>&lt;form id="form1" runat="server"&gt;
  &lt;asp:XmlDataSource ID="XmlDataSource1" runat="server"&gt;
      &lt;Data&gt;
  &lt;bla&gt;
  &lt;wibble wobble="1" /&gt;
  &lt;/bla&gt;&lt;/Data&gt;
  &lt;/asp:XmlDataSource&gt;
  &lt;asp:ScriptManager runat="server"&gt;&lt;/asp:ScriptManager&gt;
  &lt;asp:UpdatePanel runat="server"&gt;
  &lt;ContentTemplate&gt;
  
      &lt;asp:Label runat="server" ID="Counter" Text="0"&gt;&lt;/asp:Label&gt;
      &lt;asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
          DataSourceID="XmlDataSource1" onrowcommand="GridView1_RowCommand"&gt;
          &lt;Columns&gt;
              &lt;asp:BoundField DataField="wobble" HeaderText="wobble" 
                  SortExpression="wobble" /&gt;
              &lt;asp:ButtonField HeaderText="wobble" CommandName="IncrementWobble"
                  SortExpression="wobble" ButtonType="Image" ImageUrl="icons/page_copy.png" Text="increment" /&gt;
          &lt;/Columns&gt;
      &lt;/asp:GridView&gt;
   &lt;/ContentTemplate&gt;
  &lt;/asp:UpdatePanel&gt;
  
  &lt;/form&gt;
  </code></pre>
  
  <p>While making this small version, I noticed that the problem only occurs with ButtonType="Image" and not with ButtonType="Button".</p>
  
  <p>For completeness, the event handler:</p>
  
  <pre><code>protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
      if (e.CommandName == "IncrementWobble")
      {
          int count = Int32.Parse(Counter.Text) + 1;
          Counter.Text = count.ToString();
      }
  }
  </code></pre>