2010-10-13 115 views

Trả lời

32

Cột bị ràng buộc phải có cột DataFormatString. Bạn có thể làm một cái gì đó như:

DataFormatString="{0:0.00}" Numeric Custom Format Strings

CẬP NHẬT Trong trường hợp của AutoGenerateColumns="true" ... tôi phải biết chi tiết cụ thể về những gì bạn đang ràng buộc, nhưng đây là một số con đường để khám phá:

  1. Tôi không chắc chắn nếu GridView sẽ tôn trọng DataFormatAttribute trong Chú thích dữ liệu. Nếu bạn đang ràng buộc một đối tượng và GridView tôn trọng thuộc tính đó, có thể là một tuyến đường để đi.
  2. Nối sự kiện RowDataBound và kiểm tra từng cột để xem các giá trị thập phân có giá trị và định dạng theo cách đó hay không.
+0

hi, cảm ơn vì im reply.but gán giá trị cho GridView động, và AutoGenerateColumns = "True" . –

+0

ok, tôi đang ràng buộc DataTable với GridView. Thực ra tôi đang ràng buộc DataTable khác nhau với cùng GridView theo Điều kiện mà người dùng đã chọn, có nghĩa là tôi có hai tùy chọn trong hộp combo 1.Persons và 2.Products vì vậy nếu người dùng chọn Những người sau đó tôi đang tìm nạp dữ liệu Persons và liên kết nó với GridView và nếu người dùng chọn Sản phẩm thì tôi đang tìm Sản phẩm có thể định giá và ràng buộc nó với GridView. –

+1

Dường như điều đó có thể gây rắc rối nhiều hơn đáng giá. Bạn có thể có hai GridView, một cấu hình theo cách bạn muốn cho Người, và một cho Sản phẩm, và chỉ ẩn một và hiển thị khác khi cần thiết? Nếu không, bạn vẫn có thể kiểm tra từng cột trên RowDataBound và định dạng giá trị mà bạn muốn. – HackedByChinese

0

Có hai cách dễ dàng để định dạng mọi thứ trong GridView. Việc đầu tiên được đưa ra trong một câu trả lời trước đó - sử dụng DataFormatString. Thứ hai, mà âm thanh như nó áp dụng cho tình hình của bạn, nơi bạn đang tự động tải lưới, là để thay đổi dữ liệu đi vào lưới điện.

Vì vậy, thay vì trả về một số và cố gắng định dạng số, hãy trả về một số đã định dạng và để cho GridView hiển thị nó.

8

bạn có thể viết BoundField trong GridView:

<asp:BoundField DataField="amount" DataFormatString="{0:n}" /> 

bạn cũng có thể viết TemplateField trong GridView

<asp:TemplateField> 
    <ItemTemplate> 
    <%#Eval("amount","{0:n}")%> 
    </ItemTemplate> 
</asp:TemplateField> 
+1

Điều này sẽ được chấp nhận là câu trả lời ... – Waqas

+0

m cố gắng như thế này - '> và nó hiển thị tất cả các giá trị là 2. trong đó tôi sai? – Silver

2

này hoạt động trên một mẫu cột, nói rằng nếu bạn muốn có một chữ số thập phân ra hai nơi cho tỷ lệ (như 1: 3)

<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %> 
1

Nếu bạn sử dụng DataFormatString và không thấy m được làm các trick, thêm HtmlEncode = "false", ví dụ:

<asp:BoundField DataField="DateScheduled" HeaderText="Date Created" DataFormatString="{0:D}" HtmlEncode="false"/> // date format 
<asp:BoundField DataField="Amount" HeaderText="Pay This Amount" DataFormatString="{0:F}" HtmlEncode="false"/> // number format 
3

Bạn có thể làm DataFormatString="{0:n2}" trong BoundField bạn

Các vấn đề liên quan