我有一個gridview,我正在爲會計人員填充數據,他們想要我設置貨幣值的格式它們顯示沒有$的,用逗號分隔數字和與由()
包圍負數例如:
12345.67 = 12,345.67
-12345.67 =(12,345.67)
我已發現許多圍繞互聯網的例子,讓我接近但有ei沒有()周圍的消極或有一個$包括。
我有一個gridview,我正在爲會計人員填充數據,他們想要我設置貨幣值的格式它們顯示沒有$的,用逗號分隔數字和與由()
包圍負數例如:
12345.67 = 12,345.67
-12345.67 =(12,345.67)
我已發現許多圍繞互聯網的例子,讓我接近但有ei沒有()周圍的消極或有一個$包括。
所以我想基本上問題是,什麼是String.Format()調用,我將使貨幣值格式化爲上述要求。
搞亂了一些自定義格式後,我想出了它!
var amt = new BoundField();
amt.DataFormatString = "{0:#,##0.00;(#,##0.00);0}";
工程就像一個魅力。
也可以作爲asp:BoundField的聲明屬性! – brianary 2011-11-02 14:52:26
如果它僅僅是沒有()的數字,那麼它就像{0:N}一樣簡單,但是因爲您需要()負數的數值,所以BoundField不是您的選擇,除非您想在sql級別或代碼隱藏在綁定到該字段之前直接操作datasouce。
下一個選項是使用帶有標籤的TemplateField,並在代碼隱藏的GV RowDataBound事件中相應地設置相應的集合。
我正在嘗試解決方案,因爲我的查詢可能已經相當複雜了,並且已經傾向於花費40多秒才能返回一個相當稀疏的測試系統的結果,我不能確定是否會在sql server上加載任何負載我們一旦上線需要多長時間。 – kaelle 2011-03-29 20:15:48
然後你應該優化你的查詢,但是一個簡單的'case'不會使性能惡化。 – 2011-03-29 20:29:44
@蒂姆謝謝,這是很好的建議... – kaelle 2011-03-29 21:01:20