C# ObjectDataSource/Grid-动态列

C# ObjectDataSource/Grid-动态列,c#,telerik,radgrid,objectdatasource,C#,Telerik,Radgrid,Objectdatasource,我需要一个ASP.NET屏幕,显示产品列表,右边是系统中每个“批发商”的栏,每一项的价格作为每一栏中的项目 我将在这里使用Telerik RadGrid,用户必须能够过滤/页面-因此我假设我需要使用显式数据源。我已经开始创建ObjectDataSource,其结构如下: public string ProductRange { get; set; } public long ProductID { get; set; } public string Product { g

我需要一个ASP.NET屏幕,显示产品列表,右边是系统中每个“批发商”的栏,每一项的价格作为每一栏中的项目

我将在这里使用Telerik RadGrid,用户必须能够过滤/页面-因此我假设我需要使用显式数据源。我已经开始创建ObjectDataSource,其结构如下:

    public string ProductRange { get; set; }
    public long ProductID { get; set; }
    public string Product { get; set; }
    public decimal TradePrice { get; set; }
    public Dictionary<Wholesaler, decimal?> WholesalerPrices;
公共字符串ProductRange{get;set;}
公共长ProductID{get;set;}
公共字符串乘积{get;set;}
公共十进制交易价格{get;set;}
公共字典批发商;
我正在动态创建我的列,如下所示:

            WDBDataContext dc = new WDBDataContext();
        List<Wholesaler> wholesalerList = dc.Wholesalers.OrderBy(a => a.Name).ToList();
        gvProductRange.Columns.Add(new GridBoundColumn() { UniqueName = "ProductRange", HeaderText = "Product Range", DataField = "ProductRange" });
        gvProductRange.Columns.Add(new GridBoundColumn() { UniqueName = "Product", HeaderText = "Product", DataField = "Product" });
        gvProductRange.Columns.Add(new GridBoundColumn() { UniqueName = "TradePrice", HeaderText = "Trade Price", DataField = "TradePrice", DataFormatString = "{0:c}" });
        foreach (Wholesaler wholesaler in wholesalerList)
        {
            gvProductRange.Columns.Add(new GridBoundColumn() { UniqueName = wholesaler.ID.ToString(), HeaderText = wholesaler.Name, DataField = wholesaler.ID.ToString(), DataFormatString = "{0:c}" });
        }
WDBDataContext dc=new WDBDataContext();
List-whiterallist=dc.whiteralers.OrderBy(a=>a.Name.ToList();
添加(新的GridBoundColumn(){UniqueName=“ProductRange”,HeaderText=“ProductRange”,DataField=“ProductRange”});
添加(新的GridBoundColumn(){UniqueName=“Product”,HeaderText=“Product”,DataField=“Product”});
添加(新的GridBoundColumn(){UniqueName=“TradePrice”,HeaderText=“Trade Price”,DataField=“TradePrice”,DataFormatString=“{0:c}”);
foreach(批发商列表中的批发商)
{
gvProductRange.Columns.Add(新的GridBoundColumn(){UniqueName=Burg批发商.ID.ToString(),HeaderText=Burg批发商.Name,DataField=Burg批发商.ID.ToString(),DataFormatString=“{0:c}”);
}
但是,如果可能的话,我如何在运行时转换从objectdatasource返回的数据以绑定到这些正确的列


谢谢

是“gvProductRange”网格视图吗?为什么不直接指定gvProductRange.DataSource=Burg批发商列表?

它是-我可以这样做,但是这个列表只是批发商-没有与产品相关的列。而且通过使用.DataSource,我不能使用分页/排序/过滤