asp:gridview,列表为数据源,也有字典

时间:2015-07-21 10:26:34

标签: c# asp.net gridview dynamic-columns

我有一个包含结束代码的表格,例如:

代码说明

CL1原因1

CL2原因2

AF1一段时间后

AF2经过2个周期

还有订单表。订单将每周导入一次,除了其他列之外,该表还包含一个包含批处理日期的列和一个包含结束代码的列。当订单未关闭或具有第一个给定表中的一个代码时,最后一个可以为NULL。

我希望有一个gridview,每个批次列出订单总数,已关闭订单数量和每个原因所涉及的订单数量。 已经成为这样的一个类:

    public class BatchSales
    {
        public DateTime BatchDate { get; set; }
        public int BatchCount { get; set; }
        public int TotalClosed { get; set; }
        public Dictionary<string, int> Counters { get; set; }
    }

返回BatchSales列表的方法。

在我的aspx页面中定义了一个asp:gridview,AutoGenerateColumns = false。我喜欢用5列(批日期,计数,关闭,CL1,CL2,AF1和AF2)和每行填充相关数据。

在我的代码后面已经添加了第一个3.我的问题是根据字典添加列。我在列表中读取结束代码并执行此操作:

            foreach (var item in reasons)
            {
                BoundField bf = new BoundField();
                bf.HeaderText = item.Description;
                bf.DataField = "xxxx";
                bf.DataFormatString = "{0:n0}";
                bf.HeaderStyle.VerticalAlign = VerticalAlign.Top;
                bf.ItemStyle.VerticalAlign = VerticalAlign.Top;
                bf.ItemStyle.Wrap = false;
                gvBatch.Columns.Add(bf);
            }

我需要为xxxx定义什么才能从字典中获取值?或者这不是正确的做法?

1 个答案:

答案 0 :(得分:0)

您想要的更多是一个支点网格。除此之外,您需要在字典列中显示字典数据的项目模板作为行(不理想),或者在这种情况下我要做的只是在该列中有一个按钮,如&#34;显示详细信息& #34;并且有一个模态窗口弹出计数列表或将其发送到带有计数列表的详细信息页面。