2012-05-23 42 views
5

tôi không thể hiển thị định dạng tiền tệ trên DataGridView. Mọi người có thể xem mã này không.Định dạng tiền tệ trong DataGridXem trong ứng dụng cửa sổ

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

datatype cho 'Debit',' Credit' trong nguồn dữ liệu của bạn là gì? – V4Vendetta

+0

đừng quên đánh dấu câu trả lời là chấp nhận nếu bạn có thông tin bạn muốn ... –

+0

Ghi nợ, Tín dụng là loại thập phân –

Trả lời

4

nếu nó là hình thức cửa sổ hơn viết mã này trước khi bạn được ràng buộc dữ liệu vào lưới ... một cái gì đó như sau theo hình thức consturctor ...

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

nếu ASP.Net của nó thử một cái gì đó giống như DataFormatString="{0:c}"

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

Tôi nghĩ rằng điều này có liên quan đến winform – V4Vendetta

+0

@ V4Vendetta - có thể nhưng điều đó không rõ ràng .... –

+0

Hmmm .. 'DefaultCellStyle' có thể giúp quyết định rằng – V4Vendetta

4

Hãy thử thêm này

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

tôi cần định dạng tiền tệ. tôi hy vọng đây không phải là mã có liên quan đối với tôi. –

+1

Thêm, không thay thế –

1

Bạn có thể kiểm tra (điểm ngắt hoặc thứ gì đó) mà sự kiện DataBindingComplete được kích hoạt hay không. Vì vậy, ít nhất chúng ta biết nó không phải là

(chỉnh sửa) Vì vậy, nếu kiểm tra bắn của nó này có lẽ nó sẽ giúp

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

Có lẽ bằng cách tạo ra một phong cách mới nó sẽ giúp

+0

Sự kiện đang kích hoạt nhưng biểu tượng $ không thêm vào giá trị. –

+0

Bạn nên chờ 50 điểm để giành được đặc quyền nhận xét, nếu không thì mọi người có thể bỏ phiếu vì đây không phải là câu trả lời. – V4Vendetta

0

Ngoài ra bạn có thể sử dụng điều này cho Windows Forms: (hoặc tương đương với WPF hoặc ASP, ...)

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

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

Nếu bạn đã đã liên kết DataSource của bạn với DataGridView, bạn có thể đặt kiểu ô của mình bằng cách đặt mỗi định dạng ô như sau:

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

Đảm bảo giá trị của bạn là số.

0

Hãy thử thêm mã @Pranay Rana gợi ý vào CellFormatting tổ chức sự kiện trên DataGridView:

private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c"; 
} 
Các vấn đề liên quan