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 Repeater
with a UpdatePanel
in the ItemTemplate
.
Using a Div
<asp:ScriptManager ID="ctlScriptManager" runat="server" />
<asp:Repeater ID="ctlMyRepeater" runat="server">
<ItemTemplate>
<div>
<asp:UpdatePanel ID="ctlUpdatePanel" runat="server">
<ContentTemplate>
<asp:Label ID="lblName" runat="server"
Text='<%# Eval("Name") %>' />
<asp:LinkButton ID="btnRename" runat="server"
CommandArgument='<%# Eval("ID") %>'
CommandName="Rename">Rename...</asp:LinkButton>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnRename"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</ItemTemplate>
</asp:Repeater>
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.
Using a Table
<asp:ScriptManager ID="ctlScriptManager" runat="server" />
<table>
<asp:Repeater ID="ctlMyRepeater" runat="server">
<ItemTemplate>
<asp:UpdatePanel ID="ctlUpdatePanel" runat="server">
<ContentTemplate>
<tr>
<td>
<asp:Label ID="lblName" runat="server"
Text='<%# Eval("Name") %>' />
</td>
<td>
<asp:LinkButton ID="btnRename" runat="server"
CommandArgument='<%# Eval("ID") %>'
CommandName="Rename">Rename...</asp:LinkButton>
</td>
</tr>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnRename"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
</table>
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.
Thanks in advance.