Buenas compañero,
Ya tengo la solución a lo que decías... No sabía que los controles DataList generasen una tabla al completo...
Usa el control <asp:ListView> aquí te dejo un pequeño ejemplo..
Te he dejado comentado la parte de paginación, por si fuese de tu interés...
En la parte de arriba, verás un div que tiene como ide "itemPlaceholder" ese elemento es obligatorio... Eso quiere decir, que se cada ItemTemplate sustituirá a ese elemento.
Enlace del control
<asp:ListView>.
Espero que te sirva!!
Código:
<asp:ListView ID="lstDatos" runat="server">
<LayoutTemplate>
<div>
<div runat="server" id="itemPlaceholder"></div>
</div>
<%--<asp:DataPager runat="server" ID="ContactsDataPager" PageSize="3">
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="True" ShowLastPageButton="True"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>--%>
</LayoutTemplate>
<ItemTemplate>
<div style="background-color: #f00; display:inline-block; padding:5px;">
<asp:LinkButton ID="EditButton" runat="Server" Text="Edit" CommandName="Edit" /><br />
<asp:Label ID="FirstNameLabel" runat="Server" Text='FirstName' /><br />
<asp:Label ID="LastNameLabel" runat="Server" Text='LastName' />
</div>
</ItemTemplate>
<EditItemTemplate>
<div style="background-color: #ADD8E6; display:inline-block; padding:5px;">
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
<asp:TextBox ID="FirstNameTextBox" runat="server" Text='FirstName'
MaxLength="50" />
<asp:TextBox ID="LastNameTextBox" runat="server" Text='LastName'
MaxLength="50" />
</div>
</EditItemTemplate>
</asp:ListView>