2011-03-29 4 views
2

에 $ 및 음수가 없어야합니다. 저는 회계에서 사람들을위한 데이터로 채워 넣는 gridview를 가지고 있으며 통화 값을 이렇게 포맷해야합니다. 내가 많이 발견BoundField.DataFormatString을 사용하여 통화 데이터를 포맷 할 때,()의

  12345.67 = 12,345.67
-12345.67 = (12,345.67)

: 그들은 자리를 분리 쉼표와 예()

에 둘러싸여 음수로, $의없이 표시 있음 interwe 주위에 예제의 예를 들어 가까이 있지만 나를 위해 전자 네거티브 주변의 no() 또는 $가 포함되어 있습니다.

+0

내 쿼리가 이미 상당히 복잡해지고 상당히 희소 한 테스트 시스템에서 결과를 반환하는 데 40 초 이상 걸리는 경향이 있으므로 확실하지 않은 SQL Server에 더 이상 부하를주지 않는 솔루션을 찾고 있습니다. 일단 우리가 살면 얼마나 걸릴지. – kaelle

+0

그러면 쿼리를 최적화해야하지만 간단한 '사례'로 인해 성능이 악화되지는 않습니다. –

+0

@Tim 덕분에, 그것은 훌륭한 충고입니다 ... – kaelle

답변

8

그래서 기본적으로 질문은 위의 요구 사항에 통화 값의 형식을 지정하는 String.Format() 호출입니다.

일부 사용자 지정 형식으로 어지러운 뒤 나는 그것을 알아 냈습니다!

var amt = new BoundField(); 
amt.DataFormatString = "{0:#,##0.00;(#,##0.00);0}"; 

매력처럼 작동합니다.

+1

asp : BoundField에 대한 선언적 속성으로도 작동합니다! – brianary

1

그냥()없이 숫자 일 뿐이므로 {0 : N}과 같이 간단하지만 음수에는 필요합니다() BoundField는 SQL 수준 또는 코드 숨김 필드에 바인딩되기 전에 데이터 소스를 직접 조작합니다.

다음 옵션은 TemplateField를 Label과 함께 사용하고 코드 숨김으로 GV RowDataBound 이벤트에서 해당 집합을 설정하는 것입니다.