Показване на $0,00 за DBNull стойност с DataFormatString

Използвам DataFormatString, за да конвертирам обвързано поле за цена във формат на валута, като използвам DataFormatString="{0:c}" за моя подробен изглед.

Изглежда обаче, че ако стойността е празна или нулева от базата данни, вместо просто да се показва празна в моя изглед с подробности, 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="" />

person Kevin    schedule 14.04.2013    source източник
comment
Как получавате данните? Не можете ли да използвате съхранена процедура, която ще върне 0, ако стойността е празна или нула?   -  person Oded    schedule 14.04.2013
comment
Актуализирах въпроса си, показвайки откъде получавам данните   -  person Kevin    schedule 14.04.2013
comment
Изглежда, че по-добра заявка може да помогне (разгледайте CASE) .   -  person Oded    schedule 14.04.2013
comment
Можете ли да добавите asp кода, където свързвате получената стойност?   -  person nmat    schedule 15.04.2013
comment
Актуализира въпроса с asp кода   -  person Kevin    schedule 16.04.2013


Отговори (1)


Нещо подобно в кода отзад - помислете за търсене и използване на събитието Databind за вашата мрежа от данни, за да направите това по-лесно:

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

Това може да не е точно това, което искате, но прави точно това, което искате; просто трябва да използвате събитието ItemDataBound на вашия DataGrid, за да използвате това. Върнете ненулева стойност, както искате; Използвах FormattedValue за яснота.

person Richard Barker    schedule 25.09.2015