使用DataFormatString为DBNull值显示$ 0.00

时间:2013-04-14 19:38:22

标签: asp.net string-formatting detailsview

我正在使用DataFormatString将价格边界字段转换为货币格式,方法是使用DataFormatString =“{0:c}”作为我的详细信息视图。

但是,如果数据库中的值为空或null,而不是仅在我的详细信息视图中显示空白,则DataFormatString使其显示为$ 0.00。我试图设置NullDisplayText =“”但它似乎不起作用。

任何想法如何做到这一点?我是否需要使用ItemTemplate?

这就是我在.aspx

中获取数据的方法
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:TestString %>" 
    SelectCommand="SELECT [Price] FROM [DataBase] WHERE ([ID] = @ID)">

这是绑定数据的代码:

 <asp:BoundField DataField="Price" HeaderText="Price:" SortExpression="Price" 
            DataFormatString="{0:c}" NullDisplayText="" />

1 个答案:

答案 0 :(得分:0)

代码隐藏中的类似内容 - 考虑查找并使用数据网格的Databind事件来简化:

If (value is DBNull) return "" else return FormattedValue(value)

这可能不是你想要的,但它完全符合你的要求;你只需要使用DataGrid的ItemDataBound事件就可以使用它。根据需要返回非null值;为清晰起见,我使用了FormattedValue。