製品のリストを表示する 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;
そして、次のように列を動的に作成しています:
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}" });
}
ただし、実行時に objectdatasource から返されたデータを変換して、これらの正しい列にバインドするにはどうすればよいでしょうか?
ありがとう!