2013-04-14 1 views
1

Я использую 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="" /> 
+0

Как вы получаете данные? Не можете ли вы использовать хранимую процедуру, которая вернет '0', если значение пустое или пустое? – Oded

+0

Обновлен мой вопрос, показывающий, где я получаю данные – Kevin

+0

Похоже, что лучший запрос может помочь (посмотрите [CASE] (http://msdn.microsoft.com/en-gb/library/ms181765.aspx)). – Oded

ответ

0

что-то подобное в коде - рассмотреть вопрос о поиске и использовании событие Databind для вашего datagrid, чтобы сделать это проще:

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

Это может быть не совсем то, что y ou хочет, но он делает именно то, что вы хотите; вам просто нужно использовать EventDataBound Event вашего DataGrid, чтобы использовать это. Возвращайте ненулевое значение, но вы хотите; Для ясности я использовал FormattedValue.

 Смежные вопросы

  • Нет связанных вопросов^_^