2016-11-21 1 views
0

일반적으로 다음 구문을 사용하여 레이블에 단위 기호를 표시합니다. ej. 5'230 €레이블에 단위 표시 억제

<asp:Label runat="server" Text='<%# Eval("TotalAmount","{0:#,###.##}&nbsp;€") %>' id="LabelTotal"/> 

값이 null이거나 비어 있어도 기호가 표시되는 것은 추악합니다. 그러면 나는 상징을 억압하기를 원합니다.

누구나 어떻게 할 수 있습니까? 평가되는 값이 null 값을 포함 할 경우, 당신은 다음을 사용할 수 있습니다 마틴

+0

코드 숨김을 사용하지 않는 이유는 무엇입니까? –

+0

만약 내가 이것을 스 니펫으로 풀 수 없다면 아마 그렇게 될 것입니다. 이 레이블은 GridView에서 사용되며 OnRowDataBound 이벤트는 이미 코드로 포장되어 있기 때문에 마크 업에서 수행 할 것입니다. – Barnabeck

답변

1

<asp:Label runat="server" Text='<%# Convert.ToDecimal(Eval("TotalAmount")) > 0 ? string.Format("{0:C}", Convert.ToDecimal(Eval("TotalAmount"))) : string.Empty %>' id="LabelTotal"/> 

을 니펫을, 당신은 변환하기 전에 먼저 IsNullOrEmpty를 확인해야합니다.

<asp:Label runat="server" Text='<%# !string.IsNullOrEmpty(Eval("TotalAmount").ToString()) ? Convert.ToDecimal(Eval("TotalAmount")) > 0 ? string.Format("{0:C}", Convert.ToDecimal(Eval("TotalAmount"))) : string.Empty : string.Empty %>' id="Label1"/> 
+0

위대한, 완벽하게 작동합니다! 고맙습니다. – Barnabeck

+0

그러나 음수의 경우에는 작동하지 않습니다. 나는 Convert.ToDecimal (Eval ("LineAmount"))! = 0,하지만 던졌습니다 : 개체는 DBNull에서 다른 유형으로 형변환 될 수 없습니다. – Barnabeck

+0

음수 값 yes, NULL 값 no. 그 값이'null' 일 수도있는 경우, 십진수로 변환하기 전에'IsNullOrEmpty' 검증이 있어야합니다. 업데이트 – VDWWD