Вложенный репитер - цена детского репитера. Установите флажок в поле "Родительский репитер". - PullRequest
0 голосов
/ 18 января 2019

У меня есть вложенные повторители. У родительского повторителя есть цена, имя, описание, а у дочернего повторителя тоже одно и то же, но с разными значениями, я немного запутался, как добавить цену дочернего повторителя к любому из Детский Ретранслятор Предмет в Цене Родительского Ретранслятора на стороне клиента.

Я хочу добиться этого, например, когда я нажимаю на флажок, текст флажка должен измениться на Добавлено, а цена должна обновиться.

UPDATE

Мой код, который работает:

<asp:Repeater
    ID="Repeater3"
    runat="server"
    OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
        <div class="card border-success mb-3">
            <div class="card-header bg-success text-white h4">
                <%# Eval("PName") %>
            </div>
            <div class="card-body">
                <%# Eval("PDescription") %>
                <div id="ChildRepeater" runat="server">

                    <asp:Repeater ID="Repeater2" runat="server">
                        <ItemTemplate>
                            <div class="card border-danger my-3">
                                <div class="card-body">
                                    <h4><%# Eval("PName") %></h4>
                                    <h6><asp:Label ID="lblChildPrice" runat="server" Text='<%# Eval("PRate") %>'></asp:Label></h6>
                                </div>
                                <div class="card-footer">
                                    <asp:CheckBox ID="chkAdd" Text="Add" OnCheckedChanged="chkbxAdd_CheckedChanged" runat="server" />
                                </div>
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>

                </div>
            </div>
            <div class="card-footer text-muted">
                <h2><asp:Label ID="lblParentPrice" runat="server" Text='<%# Eval("PRate") %>'></asp:Label></h2>
            </div>
        </div>
    </ItemTemplate>
</asp:Repeater>

Код позади:

protected void chkbxAdd_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chk = (CheckBox)sender;
            RepeaterItem rtpritem = (RepeaterItem)chk.NamingContainer;
            Label lblPlanPrice = (Label)rtpritem.FindControl("lblChildPrice");
            Repeater rptr = (Repeater)chk.NamingContainer.Parent;
            Label lblParentPlanPrice = (Label)rptr.NamingContainer.FindControl("lblParentPrice");

            lblParentPlanPrice.Text = Convert.ToString(double.Parse(lblParentPlanPrice.Text) + double.Parse(lblPlanPrice.Text));

        }

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...