Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用字典绑定转发器_C#_Nested Repeater - Fatal编程技术网

C# 使用字典绑定转发器

C# 使用字典绑定转发器,c#,nested-repeater,C#,Nested Repeater,假设我有一个数据表,其中包含以下结构中的数据: 收入认证-1000 收入IT考试完成-1000 ACAdminics-Value1-100 ACAdminics-Value23-1000 ... 等等 我编写了一个查询,将返回一个字典,其中键为Revenue和academicals,在这些键下是一个包含所有其他值的通用列表 现在我需要显示一个中继器控件,其中 1行将是此字典的键,并且在该键下面是所有关联值 我不明白如何做到这一点。。。中继器下的中继器或其他任何东西。请帮助设计中继器或任何其他控件

假设我有一个数据表,其中包含以下结构中的数据:

收入认证-1000 收入IT考试完成-1000 ACAdminics-Value1-100 ACAdminics-Value23-1000 ... 等等

我编写了一个查询,将返回一个字典,其中键为Revenue和academicals,在这些键下是一个包含所有其他值的通用列表

现在我需要显示一个中继器控件,其中 1行将是此字典的键,并且在该键下面是所有关联值


我不明白如何做到这一点。。。中继器下的中继器或其他任何东西。请帮助设计中继器或任何其他控件,并将值绑定到它。首先,我要感谢@Aybe的回复

我试了很多,终于得到了预期的结果

        <div>
        <table>
            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <tr>
                        <td>
                            <%#Eval("Key") %>
                            <div>
                               <asp:Repeater ID="Repeater2" runat="server">
                                   <ItemTemplate>
                                        <asp:Label runat="server" ForeColor="Red" Text='<%#Eval("MetricName") %>'></asp:Label><br />
                                       <asp:Label runat="server" ForeColor="Red" Text='<%#Eval("FiscalYeartarget") %>'></asp:Label><br />
                                   </ItemTemplate>
                               </asp:Repeater>
                            </div>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
        </table>
    </div>

在web上搜索主详细信息视图。
public Dictionary<string, List<custom>> query1;
string connstr = "Data Source=(local);Initial Catalog=t;Integrated Security=True";
    string query = "SELECT * FROM [td]";
    DataTable dTable = new DataTable();

    using (SqlConnection sqlconn = new SqlConnection(connstr))
    {
        sqlconn.Open();
        SqlDataAdapter sqlda = new SqlDataAdapter(query, sqlconn);
        sqlda.Fill(dTable);

        query1 = dTable.AsEnumerable().GroupBy(x => x.Field<string>("HeaderName"))
            .ToDictionary(grp => grp.Key, x => x.Select(y => new custom()
            {
                MetricName = y.Field<string>("MetricName/KPI"),
                FiscalYeartarget = y.Field<double>("FiscalYeartarget").ToString(),
                Status = y.Field<string>("Status"),
                VTF = y.Field<double>("VTF").ToString(),
                VTF_Percent = y.Field<double>("VTF %").ToString(),
                YTDResults = y.Field<double>("YTDResults").ToString(),
                YTDTarget = y.Field<double>("YTDTarget").ToString()
            }).ToList());

        Repeater1.DataSource = query1;
        Repeater1.DataBind();

        var counter = 0;
        foreach (var x in query1)
        {
            Repeater rptr = (Repeater)Repeater1.Controls[counter].FindControl("Repeater2");
            rptr.DataSource = x.Value.ToList();
            rptr.DataBind();
            counter++;
        }
    }
public class custom
{
    public string MetricName { get; set; }
    public string FiscalYeartarget { get; set; }
    public string YTDTarget { get; set; }
    public string YTDResults { get; set; }
    public string VTF { get; set; }
    public string VTF_Percent { get; set; }
    public string Status { get; set; }
}