gpt4 book ai didi

c# - 合并多个来源的数据,在 ASP.Net GridView 中显示

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:48 25 4
gpt4 key购买 nike

我正在为我们的一个应用程序编写一个货币转换模块。我有一个产品列表,一个我们有兴趣查看价格的货币列表,以及一个货币汇率列表。我希望用户能够从他们在 GridView 中看到的列表中选择哪些货币。

我还希望能够修改我的货币列表并包含一种新货币,而不必对该模块进行额外的更改。所以我的 GridView 显示必须是动态的

基本上,我计划以具有以下列的 GridView 结束:

零件编号 - 描述 - 美元价格 - 澳元价格 - 英镑价格

美元价格将是静态的,因为它是我们的基础货币,澳元和英镑是用户选择的,并且可能列出任何数量的货币。

我通常会使用 DataSet 和 DataTables 来完成这项工作,但我确信有一种“更好”的方法可以使用 System.Collections.Generics 来完成。

现在我在 List 集合中拥有我需要的所有数据,但似乎没有办法定义这些集合如何相互关联,或将这些集合组合成一个以便它可以绑定(bind)到 GridView .

我应该查看 List 以外的其他东西来实现这一点,还是我需要回到我原来的 DataSet 和 DataTables 方法。

谢谢!

******更新/一些代码******

好的,有人要了一些代码,所以我会稍微解释一下我目前的设置。

  1. 产品和货币列表 - 这些来自 SQL DB 通过 LINQ,因此它们可以是任何 System.Collections.Generics 对象,例如列表、IEnumerable 等

  2. 货币汇率 - 这些是我从欧洲银行公共(public) XML 文件中提取的。我下载文件,从中剥离我需要的数据,目前将其存储为 List 对象。

也可以将货币汇率存储在数据库表中,但是我必须有某种后台进程来每天更新汇率。这样,费率只有在有人访问报告功能时才会更新(这只会偶尔发生)。所以我宁愿“按需”获取最新的费率。

我知道我最终需要的是一些具有以下结构的对象:

零件号 - 描述 - 基础价格 - 货币价格 1、货币价格 2、货币价格 3

Currency Prices 的数量未定义,因为它基于用户希望报告显示的货币。

这是我正在努力解决的未定义部分,本质上我如何创建一个结构化对象,直到运行时我才知道它的完整结构?

希望这更有意义/有所帮助!

最佳答案

只是在这里大声思考,但是如果您将“外国”价格存储在字典或类似的数据结构中,如下所示:

class Product {
public String PartNo { get; set; }
public String Description { get; set; }
public Decimal BasePrice { get; set; }
public Dictionary<String, Decimal> ForeignPrices;
}

然后您可以编写一个简单的例程,该例程将获取上述对象的集合并将其转换为您随后可以绑定(bind)到的 DataTable。所述例程将始终创建以下列:

PartNo, Description, BasePrice

然后它将遍历字典中的项目,为每个项目添加额外的列。因此,如果您在 ForeignPrices 中有三个项目:

ForeignPrices.Items.Add("AUD", 10.50);
ForeignPrices.Items.Add("GBP", 6.20);
ForeignPrices.Items.Add("CAD", 5.95);

您最终会在动态创建的 DataTable 上增加三个列:

PartNo, Description, BasePrice, AUD, GBP, CAD

当然,您可能想要取消 BasePrice 属性,而只是将“USD”设为 ForeignPrices 中的另一个项目(在这种情况下,它会被简称为 Prices)。

HTH.

关于c# - 合并多个来源的数据,在 ASP.Net GridView 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2207178/

25 4 0
文章推荐: apache - 使用 apache 虚拟主机重定向到其他域的 HTTPS
文章推荐: python - 使用 BeautifulSoup 提取
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com