title: How to use an UpdatePanel inside a Reapeater ItemTemplate with a HTML Table
body: <p>I want to allow the user to edit by data by row, so only need content updated by row. I managed to achieve this by using a <code>Repeater</code> with a <code>UpdatePanel</code> in the <code>ItemTemplate</code>. </p>
  
  <h2>Using a Div</h2>
  
  <pre><code>&lt;asp:ScriptManager ID="ctlScriptManager" runat="server" /&gt;
  &lt;asp:Repeater ID="ctlMyRepeater" runat="server"&gt;
      &lt;ItemTemplate&gt;
          &lt;div&gt;
              &lt;asp:UpdatePanel ID="ctlUpdatePanel" runat="server"&gt;
                  &lt;ContentTemplate&gt;
                      &lt;asp:Label ID="lblName" runat="server"
                          Text='&lt;%# Eval("Name") %&gt;' /&gt;
                      &lt;asp:LinkButton ID="btnRename" runat="server"
                          CommandArgument='&lt;%# Eval("ID") %&gt;'
                          CommandName="Rename"&gt;Rename...&lt;/asp:LinkButton&gt;
                  &lt;/ContentTemplate&gt;
                  &lt;Triggers&gt;
                      &lt;asp:AsyncPostBackTrigger ControlID="btnRename" 
                          EventName="Click" /&gt;
                  &lt;/Triggers&gt;
              &lt;/asp:UpdatePanel&gt;
          &lt;/div&gt;
      &lt;/ItemTemplate&gt;
  &lt;/asp:Repeater&gt;
  </code></pre>
  
  <p>But, I want to use a table to ensure structure and spacing and CSS styling wasn't doing it for me, but when I use a table everything goes whacky.</p>
  
  <h2>Using a Table</h2>
  
  <pre><code>&lt;asp:ScriptManager ID="ctlScriptManager" runat="server" /&gt;
  &lt;table&gt;
      &lt;asp:Repeater ID="ctlMyRepeater" runat="server"&gt;
          &lt;ItemTemplate&gt;
              &lt;asp:UpdatePanel ID="ctlUpdatePanel" runat="server"&gt;
                  &lt;ContentTemplate&gt;
                      &lt;tr&gt;
                          &lt;td&gt;
                              &lt;asp:Label ID="lblName" runat="server"
                                  Text='&lt;%# Eval("Name") %&gt;' /&gt;
                          &lt;/td&gt;
                          &lt;td&gt;
                              &lt;asp:LinkButton ID="btnRename" runat="server"
                                  CommandArgument='&lt;%# Eval("ID") %&gt;'
                                  CommandName="Rename"&gt;Rename...&lt;/asp:LinkButton&gt;
                          &lt;/td&gt;
                      &lt;/tr&gt;
                  &lt;/ContentTemplate&gt;
                  &lt;Triggers&gt;
                      &lt;asp:AsyncPostBackTrigger ControlID="btnRename"
                          EventName="Click" /&gt;
                  &lt;/Triggers&gt;
              &lt;/asp:UpdatePanel&gt;
          &lt;/ItemTemplate&gt;
      &lt;/asp:Repeater&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>What's the best way to solve this problem? I prefer using a table, because I really want to enforce structure without reliance on CSS.</p>
  
  <p>Thanks in advance.</p>