Используя строковое форматирование.NET, как я форматирую строку для отображения пробела (пустая строка) для нуля (0)?

Я использую DataBinder. Выражение оценки в Datagrid ASP.NET, но я думаю, что этот вопрос применяется к Строковому форматированию в.NET в целом. Клиент запросил, чтобы, если значение строки 0, оно не было отображено. У меня есть следующий взлом для выполнения этого:

<%# IIf(DataBinder.Eval(Container.DataItem, "MSDWhole").Trim = "0", "", 
    DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0}"))  %>

Я хотел бы измениться {0:N0} форматирование выражения так, чтобы я мог устранить оператор IIf, но не мог найти ничего, что работает.

6
задан Nick Craver 17 February 2010 в 16:49
поделиться

3 ответа

Вам необходимо использовать разделитель разделов , например:

<%# DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0;; }").Trim() %>

Обратите внимание, что только отрицательный раздел может быть пустым, поэтому мне нужно поставить пробел в разделе 0 . (Прочтите документацию )

10
ответ дан 8 December 2019 в 18:35
поделиться

Попробуйте вызвать функцию во время привязки, как это

<%# MyFunction( DataBinder.Eval(Container.DataItem, "MSDWhole") ) %>

, и внутри функции сделайте нужное форматирование

0
ответ дан 8 December 2019 в 18:35
поделиться

Используйте собственный метод.

public static string MyFormat(double value) {       
    return value == 0 ? "" : value.ToString("0");
}

<%# MyFormat(Convert.ToDouble(Eval("MSDWhole"))) %>
0
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: