Я использую DataBinder. Выражение оценки в Datagrid ASP.NET, но я думаю, что этот вопрос применяется к Строковому форматированию в.NET в целом. Клиент запросил, чтобы, если значение строки 0, оно не было отображено. У меня есть следующий взлом для выполнения этого:
<%# IIf(DataBinder.Eval(Container.DataItem, "MSDWhole").Trim = "0", "",
DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0}")) %>
Я хотел бы измениться {0:N0}
форматирование выражения так, чтобы я мог устранить оператор IIf, но не мог найти ничего, что работает.
Вам необходимо использовать разделитель разделов , например:
<%# DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0;; }").Trim() %>
Обратите внимание, что только отрицательный раздел может быть пустым, поэтому мне нужно поставить пробел в разделе 0
. (Прочтите документацию )
Попробуйте вызвать функцию во время привязки, как это
<%# MyFunction( DataBinder.Eval(Container.DataItem, "MSDWhole") ) %>
, и внутри функции сделайте нужное форматирование
Используйте собственный метод.
public static string MyFormat(double value) {
return value == 0 ? "" : value.ToString("0");
}
<%# MyFormat(Convert.ToDouble(Eval("MSDWhole"))) %>