首页 > 解决方案 > 如何使用更新面板中的图像按钮绑定嵌套中继器

问题描述

我使用带有 jQ​​uery 的简单 html img 来显示嵌套表并将转发器绑定到 itemdatabound。问题是,同时从列表中的项目中获取所有子项目非常昂贵。因此,我决定最好单击折叠图像以显示嵌套表,我应该在其中绑定中继器。

为此,我使用 imagebutton 和命令参数来获取 ID 并使用更新面板来停止从按钮回发,但转发器不会更新?

<asp:ScriptManager runat="server"></asp:ScriptManager>

<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="rptInventarioLocalizacoes_ItemCommand">
    <HeaderTemplate>
        <table id="tblInventarioLocalizacoes" class="table table-bordered table-striped dataTable text-center">
            <thead class="thead-dark">
                <tr>
                    <th></th>
                    <th>Nª</th>
                    <th>Localização</th>
                    <th>Etq. Por Inventariar</th>
                    <th>Etq. Inventariadas</th>
                    <th>Precisão</th>
                </tr>
            </thead>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <asp:ImageButton ID="ibtnCollapse" runat="server" Style="cursor: pointer" ImageUrl="../../Images/Collapse/plus.png" Width="20" CommandName="BindEtiquetas" CommandArgument='<%# Eval("Localizacao") %>' />

                <asp:Panel ID="pnlInventarioEtiquetas" runat="server" Style="display: none">

                    <asp:UpdatePanel runat="server">
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ibtnCollapse" EventName="Click" />
                        </Triggers>
                        <ContentTemplate>
                            <asp:Repeater ID="rptLocalizacoesEtiquetas" runat="server">
                                <HeaderTemplate>
                                    <table id="tblLocalizacoesEtiquetas" class="nestedtable table table-bordered table-striped dataTable">
                                        <thead class="thead-dark">
                                            <tr>
                                                <th>#</th>
                                                <th>Etiqueta</th>
                                                <th>Validar</th>
                                            </tr>
                                        </thead>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblRowIndex" runat="server" Text='<%# (((RepeaterItem)Container).ItemIndex + 1) %>' />
                                        </td>
                                        <td>
                                            <asp:Label ID="lblEtiqueta" runat="server" Text='<%# Eval("Etiqueta") %>' />
                                        </td>
                                        <td>
                                            <asp:CheckBox ID="chkEtiqueta" runat="server" />
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                        <asp:Button ID="btnAddEtiqueta" runat="server" CssClass="btn btn-default" Text="Adicionar Etiqueta" BackColor="#020023" ForeColor="White" Font-Bold="true" />
                                    <asp:Button ID="btnInventariar" runat="server" CssClass="btn btn-default" Text="Inventariar Etiquetas" BackColor="#020023" ForeColor="White" Font-Bold="true" />
                                </FooterTemplate>
                            </asp:Repeater>
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </asp:Panel>
            </td>
            <td>
                <asp:Label ID="lblRowIndex" runat="server" Text='<%# (((RepeaterItem)Container).ItemIndex + 1) %>' />
                <asp:Label ID="lblIdlocalizacao" runat="server" Text='<%# Eval("IdInventarioLocalizacao") %>' Style="display: none" />
            </td>
            <td>
                <asp:Label ID="lblLocalizacao" runat="server" Text='<%# Eval("Localizacao") %>' />
            </td>
            <td>
                <asp:Label ID="lblEtiquetasPorInventariar" runat="server" Text='<%# Eval("EtiquetasPorInventariar") %>' />
            </td>
            <td>
                <asp:Label ID="lblEtiquetasInventariadas" runat="server" Text='<%# Eval("EtiquetasInventariadas") %>' />
            </td>
            <td>
                <asp:Label ID="lblPrecisao" runat="server" Text='<%# Eval("Precisao") %>' />
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

标签: c#asp.netrepeater

解决方案


推荐阅读