好吧,我有一個ListBox顯示產品(他們是一個自定義的類,並有ID,名稱,價格),在綁定列表中..我希望ListBox顯示項目名稱和價格。列表框(lbProductsChosen)將「DataTextField」設置爲名稱並將DataValueField設置爲該ID。我正在使用PreRender事件來檢查每個項目,從綁定列表(blProducts)中查看它的價格等等,它的工作效果很好。我用這個名字和價格顯示在列表中。但是,當它顯示時,儘管我使用String.Format格式化,結果仍然是一個十進制數(例如3.20000),它看起來很醜。有誰知道爲什麼它的工作顯示它,但沒有顯示它,我想如何格式化。ASP.net ListBox貨幣格式化
protected void lbProductsChosen_PreRender(object sender, EventArgs e)
{
foreach (ListItem item in lbProductsChosen.Items)
{
string currentDescription = item.Text;
int convertedValue = Convert.ToInt32(item.Value);
for (int i = 0; i < blProducts.Count; i++)
{
if (blProducts[i].ProductID == convertedValue)
{
decimal ItemPrice = blProducts[i].Price;
string convertedPrice = ItemPrice.ToString();
string currentPrice = String.Format("{0:c}", convertedPrice);
string currentDescriptionPadded = currentDescription.PadRight(30);
item.Text = currentDescriptionPadded + currentPrice;
}
}
}
}
謝謝。本地設置是正確的,因爲我在我的程序的其他部分使用貨幣轉換,它的工作原理。只是不知道爲什麼它不在這裏格式化,沒有錯誤。我會用你的例子嘗試一下,希望它可以工作,儘管它可能不會像我使用的格式那樣註冊它,因爲它實際上不是從本地設置。明天會提供反饋。 – Sick