2012-05-23 19 views
5

Nie mogę wyświetlić formatu waluty na DataGridView. Czy ludzie mogą wyglądać ten kod.Format waluty w DataGridView w aplikacji Windows

private void dataGridView1_DataBindingComplete(object sender, 
            DataGridViewBindingCompleteEventArgs e) 
{ 
    objPreview.dataGridView1.Columns["Debit"].DefaultCellStyle.Format = "c"; 
    objPreview.dataGridView1.Columns["Credit"].DefaultCellStyle.Format = "c"; 
} 
+0

Jaki jest typ danych dla '' Credit' Debit' w Twoim źródłem danych? – V4Vendetta

+0

Nie zapomnij oznaczyć odpowiedzi jako zaakceptowanej, jeśli masz informacje, których potrzebujesz ... –

+0

Debet, Kredyt są typu dziesiętnego –

Odpowiedz

4

jeśli jest to forma okna niż napisać ten kod, zanim są wiążące dane do sieci ... coś jak poniżej w consturctor formy ...

public Form1() 
{ 
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c"; 
} 

jeśli jego ASP.Net spróbować czegoś jak DataFormatString="{0:c}"

<asp:BoundField HeaderText="Price/Unit" 
       DataField="UnitPrice" SortExpression="UnitPrice" 
       DataFormatString="{0:c}"> 
        <ItemStyle HorizontalAlign="Right"></ItemStyle> 
+0

Myślę, że jest to związane z winformem – V4Vendetta

+0

@ V4Vendetta - może być, ale to nie jest jasne ... –

+0

Hmmm .. 'DefaultCellStyle' może pomóc w podjęciu decyzji, że – V4Vendetta

4

spróbuj dodać ten

objPreview.dataGridView1.Columns["Debit"].ValueType = Type.GetType("System.Decimal") 
objPreview.dataGridView1.Columns["Credit"].ValueType = Type.GetType("System.Decimal") 
+0

Potrzebuję formatu walutowego. mam nadzieję, że to nie jest odpowiedni kod dla mnie. –

+1

Dodaj, nie zamień –

1

Czy można sprawdzić (punkt przerwania lub coś takiego), że zdarzenie DataBindingComplete jest uruchamiane. Tak przynajmniej wiemy, to nie tak

(edytowane) więc jeśli jej opalane check to może to pomoże

http://msdn.microsoft.com/en-us/library/k4sab6f9

Może tworząc nowy styl pomoże

+0

Zdarzenie jest wyzwalane, ale symbol $ nie dodaje wartości. –

+0

Powinieneś poczekać na znak 50, aby zdobyć uprawnienie do komentowania, inaczej ludzie mogą stracić głos, ponieważ to nie jest żadna odpowiedź. – V4Vendetta

0

Również może użyć tego dla Windows Forms: (lub jego odpowiednik dla WPF lub ASP, ...)

yourColumn.DefaultCellStyle.Format = "#,#"; 

// And add below if you want 
yourColumn.DefaultCellStyle.NullValue= "0"; 
0

Jeśli już zbindowanych swoje źródło danych do DataGridView, można ustawić styl komórki przez ustawienie każdego formatu komórek jak:

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    row.Cells["Debit"].Style.Format = "c"; 
    row.Cells["Credit"].Style.Format = "c"; 
} 

Upewnij się, że wartość liczbowa.

0

spróbuj dodać kod @Pranay Rana sugerowane do CellFormatting Event na DataGridView:

private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c"; 
} 
Powiązane problemy