The case of the double post back

Saturday, December 06, 2003 12:57:14 PM (Central Standard Time, UTC-06:00)
Let's just say you were cranking out HTML one day and instead of using the bgcolor attribute on a table to indicate the background color, you used background (which allows you to use an image for the background).
 
Would you think that it would create a double post back when you clicked submit on your form?
 
Well it does… this was a tough one to find in a large application we were working on.  It had been around since at least April of this year (at least that's when it was brought to my attention).   Months later when we were looking into performance and cleanup, we were able to find the source of the problem.
 
It was the background attribute on table that had a hex value for the color white (#FFFFFF).  Here is the offending html here (it's highlighted in yellow):
 
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="DoublePostBack.WebForm1" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

 <HEAD>

  <title>WebForm1</title>

  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">

  <meta name="CODE_LANGUAGE" Content="C#">

  <meta name="vs_defaultClientScript" content="JavaScript">

  <meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie5">

 </HEAD>

 <body MS_POSITIONING="GridLayout">

  <form id="Form2" method="post" runat="server">

   <INPUT type="submit" value="Submit">

   <br/><br/><br/>

   <table background="#FFFFFF" runat="server" ID="Table1">

    <tr>

     <td>This is a table cell.</td>

    </tr>

   </table>

  </form>

 </body>

</HTML>
 
If you remove the background attribute from the code, the double post back is resolved, or you can also put a valid value (like an URL) into the attribute and it will work fine.