我有一个带有以下数据组的json feed:
["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,姓名:abc
id:2,姓名:def
政策#:2222
id:3,姓名:ghi
if: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,名称:ABC
ID:2,名称:DEF
ID:3,名称:GHI
ID:4,名称:JKL
政策#:2222
答案 0 :(得分:0)
注意你的代码:
DataTable dt2 = buildData().Select(searchExpression).CopyToDataTable();
rptSub.DataSource = buildData();
rptSub.DataBind();
第二行可能是rptSub.DataSource = dt2;
。