我希望允许用户按数据行进行编辑,因此只需要按行更新内容。我通过使用
Repeater
用一个
UpdatePanel
在
ItemTemplate
.
使用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>
但是,我想使用一个表来确保结构和间距,而CSS样式并不是为我做的,但是当我使用一个表时,一切都变得异常糟糕。
使用表格
<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>
解决这个问题的最佳方法是什么?我更喜欢使用表,因为我真的想在不依赖CSS的情况下强制执行结构。
事先谢谢。