У меня есть канал JSon со следующей группой данных:нагрузки вложенной повторяющаяся, если соответствует значению - C#
["policy#:1111", "id:1", "name:abc"],
["policy#:1111", "id:2", "name:def"],
["policy#:2222", "id:3", "name:ghi"],
["policy#:2222", "id:4", "name:jkl"]
Я хочу, чтобы сгруппировать записи на основе «политика #». так что данные должен отображаться в ретрансляторе, как это:
политика #: 1111
ID: 1, имя: а
ID: 2, Имя: Защита
политика #: 2222
ID: 3, Имя: ГХИ
если: 4, Имя: JKL
Для этого я использую следующий код, но я могу легко использовать политик # на первом повторителе, но я не могу отображать остальную информацию на основе политики # в вложенном повторителе. Пожалуйста, помогите
ASCX:
<asp:Repeater ID="rptDocument" runat="server" OnItemDataBound="repMenu1_ItemDataBound">
<HeaderTemplate>
<ul id="getDocuments">
</HeaderTemplate>
<FooterTemplate></ul></FooterTemplate>
<ItemTemplate>
<li class='parent'><%# Eval("Policynum") %></li>
<asp:Repeater runat="server" ID="sub_repeater">
<HeaderTemplate>
<ul id="getDocuments">
</HeaderTemplate>
<FooterTemplate></ul></FooterTemplate>
<ItemTemplate>
<li class='child'><%# Eval("Id") %>'</li>
<li class='child'><%# Eval("Name") %></li>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
ASCX.CS (Для того, чтобы связать данные в гнездовой ретранслятора, если политика # соответствует) Здесь я получаю вопросы, населяющие данные в гнездовой повторителя
protected void repMenu1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Repeater rptSub = (Repeater)e.Item.FindControl("sub_repeater");
string searchExpression = "Policynum = '" + DataBinder.Eval((e.Item).DataItem, "Policynum") + "'";
DataTable dt2 = buildData().Select(searchExpression).CopyToDataTable();
rptSub.DataSource = buildData();
rptSub.DataBind();
}
}
После выполнения приведенного выше кода, я получаю результат следующим образом:
политики #: 1111
ID: 1, имя: а
ID: 2, Имя: Защита
ID: 3, Имя: ГХИ
ID: 4, Имя: JKL
политики #: 2222
Спасибо. Я не знаю, как я пропустил его, но теперь, когда я вижу результат, он показывает этот результат: Политика №: 1111 id: 1, имя: abc id: 2, имя: def Политика № 2 – makhan
Все права защищены. , Согласно вашему коду, возможно, вы хотите «выбрать» некоторые данные из результата метода 'buildData()' и 'CopyToDataTable()' dt2. Поэтому я думаю, что источник данных 'rptSub' должен связываться с' DataTable' dt2, а не с исходным методом 'buildData()'. – vxchin