使用.NET字符串格式化,我怎么格式的字符串来显示空白(空字符串),零(0)?

StackOverflow https://stackoverflow.com/questions/2282573

我使用在ASP.NET数据网格中的的DataBinder.Eval的表达,但我认为这个问题适用于字符串格式化在.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部分。 (阅读文档

其他提示

鉴于接受的答案:

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

在的空间被放置在所述第三位置,但是放置在第三位置的#将消除需要调用Trim()

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

使用一个自定义的方法。

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

<%# MyFormat(Convert.ToDouble(Eval("MSDWhole"))) %>

尝试调用一个函数,而像这样的结合

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

和内部功能使你想要的格式

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top