У меня есть вложенные повторители. У родительского повторителя есть цена, имя, описание, а у дочернего повторителя тоже одно и то же, но с разными значениями, я немного запутался, как добавить цену дочернего повторителя к любому из Детский Ретранслятор Предмет в Цене Родительского Ретранслятора на стороне клиента.
Я хочу добиться этого, например, когда я нажимаю на флажок, текст флажка должен измениться на Добавлено, а цена должна обновиться.
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));
}
Спасибо