Управление вложенным ретранслятором в ASP.NET
I have a nested repeater control with multiple views. Here the parent repeater is bound to a datatable. When we click on the div in parent repeater, child repeaters will be displayed in a dropdown box. But I'm getting same instance of child repeaters in all views of parent repeater. Please help me to resolve the issue.
Что я уже пробовал:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <div class="row row-border pb-1 pt-1 border-bottom border-dark dropdown-toggle" data-toggle="dropdown"> <div class="col-md-2"> <asp:Label ID="LabelDate" runat="server" Text='<%# Eval("id") %>'></asp:Label> </div> <div class="col-md-2"> <asp:Label ID="Label1" runat="server" Text="Test 1"></asp:Label> </div> <div class="col-md-2"> <asp:Label ID="Label2" runat="server" Text="Test 2"></asp:Label> </div> <div class="col-md-2"> <asp:Label ID="Label3" runat="server" Text="Test 3"></asp:Label> </div> <div class="col-md-2"> <asp:Label ID="Label4" runat="server" Text="Test 4"></asp:Label> </div> </div> <div class="dropdown-menu dropdown-menu-right"> <div class="row"> <div class="col-md-12"> Header </div> <div class="col-md-6"> <asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <div class="row"> <div class="col-md-12"> <%# Container.DataItem?.ToString() ?? string.Empty%> </div> </div> </ItemTemplate> </asp:Repeater> </div> <div class="col-md-6"> <asp:Repeater ID="Repeater3" runat="server"> <ItemTemplate> <div class="row"> <div class="col-md-12"> <%# Container.DataItem?.ToString() ?? string.Empty%> </div> </div> </ItemTemplate> </asp:Repeater> </div> </div> </div> </ItemTemplate> </asp:Repeater>
Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { ... var Temp1= new List<string>(); var Temp2= new List<string>(); ... Repeater Rptr2 = (e.Item.FindControl("Repeater2") as Repeater); Repeater Rptr3 = (e.Item.FindControl("Repeater3") as Repeater); Rptr2.DataSource = Temp1; Rptr3.DataSource = Temp2; Rptr2.DataBind(); Rptr3.DataBind(); }
F-ES Sitecore
Вы получаете те же самые данные, что и при привязке Repeater2 и Repeater3 к тем же данным, что и код в Repeater1_ItemDataBound, не изменяющийся в зависимости от родительской строки.
Reshma Tv
Да.. Во время отладки я проверил и подтвердил, что правильные значения привязаны к дочерним повторителям. Но в выпадающем списке (когда я нажимаю на div в Родительском ретрансляторе) первое значение , привязанное к дочерним ретрансляторам, отображается во всех представлениях родительского ретранслятора.
Приведенный ниже код javascript используется для отображения выпадающего списка.
$(документ).готово(функция () {
$('.выпадающего-включить).выпадающий();
});
F-ES Sitecore
Используйте view->source для проверки исходного html-кода. Если правильные данные находятся в источнике, то проблема заключается в вашей "выпадающей" функции\css-классах.
Reshma Tv
Да.. Данные принимаются правильно в источнике.
F-ES Sitecore
Что же тогда представляет собой функция "dropdown ()"? Откуда это взялось?
Reshma Tv
Здесь я использую bootstrap 4 toggleable menu в качестве выпадающего списка и вызываю их через javascript.
$(документ).готово(функция () {
$('.выпадающего-включить).выпадающий();
});
Также включены ниже Css и JS файлы.
https://code.jquery.com/jquery-3.5.1.min.js
https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js
https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js
https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css
https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css