2015-07-21 48 views
0

我有一个表闭合代码,例如:ASP:gridview的一个列表作为数据源,其中也有一个字典

代码描述

CL1原因1

CL2原因2

期间

AF1后1周期

AF2后也是一个订单表。订单将每周导入一次,除了其他列以外,该表还包含一个包含批日期的列和一个包含结束代码的列。当订单未关闭或具有来自第一个给定表的代码之一时,最后一个可以为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列表的方法。

定义一个asp:GridView控件在我的aspx页面,用的AutoGenerateColumns =假。我喜欢填写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来从字典中的价值?或者这不是正确的方法?

+0

看看这是否可以帮助你http://www.codeproject.com/Articles/160773/Expandable-Rows-in-GridView – Bayeni

回答

0

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

相关问题