【问题标题】:asp:gridview with a list as datasource, which also has a dictionaryasp:gridview 有一个列表作为数据源,它也有一个字典
【发布时间】:2015-07-21 10:26:34
【问题描述】:

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

代码说明

CL1 原因 1

CL2 原因 2

AF1 1 个周期后

AF2 2 个周期后

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

我想要一个网格视图,其中列出了每批的订单总数、已关闭订单的数量以及每个原因涉及的订单数量。 已经做了一个这样的类:

    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 定义什么才能从字典中获取值?或者这不是正确的方法吗?

【问题讨论】:

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


【解决方案1】:

您想要的更多的是一个枢轴网格。除此之外,您需要字典列中的项目模板,将您的字典数据显示为行(不理想),或者在这种情况下我要做的只是在该列中有一个按钮,上面写着“显示详细信息”,或者弹出一个带有计数列表的模式窗口,或者将其发送到带有计数列表的详细信息页面。

【讨论】:

    猜你喜欢
    • 2021-09-22
    • 2021-03-05
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多