代码之家  ›  专栏  ›  技术社区  ›  Llyle bonjorno

如何在带有HTML表的reapeter itemtemplate中使用updatepanel

  •  1
  • Llyle bonjorno  · 技术社区  · 14 年前

    我希望允许用户按数据行进行编辑,因此只需要按行更新内容。我通过使用 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的情况下强制执行结构。

    事先谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Kevin LaBranche    14 年前

    三种可能有帮助的想法……

    1. 将更新面板移到 中继器控制而不是 模板…
    2. 再次使用ListView控件 将面板移出 模板…
    3. 也许给我们看看你的CSS 试穿DIV和你想要的 所以我们可以帮助你工作 用你的第一个样品 再一次。。。