1

我正在向gridview輸入一個數據表以顯示過去一年的幾項不同收費。我希望gridview中的費用以貨幣格式顯示,但我也希望能夠在單擊標題時對列進行排序。
如果列的字符串類型是 (前),我可以很容易地獲得格式。 暗淡DT爲DataTable的 dt.Columns.Add( 「ChargeField」,System.Type.GetType( 「System.String」))格式化數據表的列以顯示貨幣

,但是當它是一個字符串

排序不工作的權利我有點通過使用此代碼 dt.DefaultView.Sort = ChargeField &「」 & ASC

排序不工作時,列式的雙 前。 dt.Columns.Add(「ChargeField」,System.Type.GetType(「System.Double」))

但它不是貨幣格式。

有沒有辦法讓數據表/ Gridview有一個雙/十進制列,它的值顯示爲貨幣?如果沒有,是否有更好的方法來完成我想要做的事情?

回答

3

將列添加爲double(就像您在文章中所說的那樣),以便它們能夠正確排序。

dt.Columns.Add("ChargeField ", System.Type.GetType("System.Double")) 

然後你就可以做到這一點的所有列格式化數據網格視圖貨幣:

DataGridView1.DataSource=dt 
DataGridView1.Columns("ChargeField").DefaultCellStyle.Format = "c" 

爲:

DataGridView1.DataSource=dt 
DataGridView1.DefaultCellStyle.Format = "c" 

或者,你可以爲單獨列做一個GridView,你可以使用DataFormatString。 This MSDN page可能有幫助,以及this MSDN forum postthis ASP.net forum post

<Columns> 
    <asp:BoundField DataField="ChargeField" DataFormatString = "{0:c}" /> 
</Columns> 
+0

我的GridView控件沒有在其列外地DefaultCellStyle。最有可能的原因是它只是一個gridview,而不是一個datagrid視圖,但我似乎無法將我的gridview轉換爲datagridview。我正在使用Microsoft Visual Studio 2010。 –

+0

@ThomasHolladay編輯我的答案,包括gridviews – rwisch45