2010-02-05 66 views
2

我正在爲我們的一個應用程序編寫貨幣轉換模塊。我有一個產品清單,我們有興趣查看價格的貨幣清單,以及貨幣匯率清單。我希望用戶能夠從他們在GridView中看到的列表中選擇哪些貨幣。結合多個來源的數據,以ASP.Net顯示GridView

我還希望能夠修改我的貨幣列表幷包含新貨幣,而無需對此模塊進行其他更改。所以我的GridView顯示必須是dynamic

基本上我打算用具有以下的列一個GridView結束了:

部件號 - 說明 - 美元的價格 - 澳元價格 - 英鎊價格

美元價格將是靜態的這是我們的基礎貨幣,澳元和英鎊是用戶選擇的,可能有任何數量的貨幣列出。

我通常會爲此工作使用DataSet和DataTables,但我確定有一種「更好」的方法可以使用System.Collections.Generics來完成它。

現在我有我需要在列表集合中的所有數據,但似乎沒有辦法來定義這些集合如何相互關聯,或將這些集合合併爲一個,因此它可以綁定到網格視圖。

我應該看看List以外的東西來實現這一點,還是需要回到我原來的DataSet和DataTables方法。

謝謝!

****** UPDATE /一些代碼******

OK,有人問了一些代碼,所以我將解釋多一點點關於我有什麼設置這麼遠。的產品&貨幣

  1. 名單 - 這些來自通過LINQ的SQL數據庫,這樣他們就可以是任何System.Collections.Generics對象,例如中列表,IEnumerable等

  2. 貨幣匯率 - 這些我從歐洲銀行公共XML文件拉。我下載這個文件,將我需要的數據從它中刪除,並且當前將它存儲爲一個List對象。

存儲在數據庫表中的匯率爲好,但我必須有某種後臺進程去,每天更新率。這種方式只有當有人訪問報告功能時纔會更新費率(這隻會偶爾發生)。所以我寧願要求「最新」的最新價格。

什麼,我知道我需要落得一些對象,它具有以下結構:

PARTNO - 描述 - 基礎價格 - 貨幣價格1,貨幣價格2,貨幣價格3

如果貨幣價格數量爲未定義,因爲它基於用戶想要報告顯示的貨幣。

這是未定義的部分,我掙扎着,本質上我怎麼能創建一個結構化對象,我不知道直到運行時的完整結構?

希望這樣做更有意義/有幫助!

+0

我們可以看到一些代碼嗎?你有什麼不同的收藏品? – 2010-02-05 15:51:15

+0

用一些更多信息更新了我的原始帖子。謝謝。 – SnAzBaZ 2010-02-05 17:04:57

回答

1

只是想大聲這裏,但如果你存儲在您的「洋」的價格在詞典或類似的數據結構,像這樣:

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

然後,你可以寫一個簡單的程序,將採取的一個集合上面的對象並將其轉換成可以綁定到的DataTable。說日常總是創建以下欄目:

PartNo, Description, BasePrice 

它將然後通過在字典中的項目,添加額外列各項循環。所以,如果你有在ForeignPrices三個項目:

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

你最終會與你的動態創建數據表三個附加列:

PartNo, Description, BasePrice, AUD, GBP, CAD 

當然,你可能要與BasePrice財產做掉並在「外國價格」中製造另一項「美元」(在這種情況下,它簡稱爲價格)。

HTH。

相關問題