書式設定.NET文字列を使用して、どのように私は、ゼロ(0)の表示空白(空の文字列)に文字列をフォーマットしますか?

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

質問

私は、ASP.NET DataGrid内DataBinder.Eval式を使用していますが、私はこの質問は、一般的に、.NETの書式文字列に適用されると思います。顧客は、文字列の値が0であれば、それは表示しないことを要求しています。私はこれを実現するには、次のハックがあります:

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

私はのIIF文を排除することができますが、作品その何かを見つけることができないように{0:N0}書式設定式を変更したいと思います。

役に立ちましたか?

解決

あなたはこのように、セクション区切りを使用する必要があります:

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

私は0セクションにスペースを入れる必要があるので、唯一のマイナス部分は、空であることに注意してください。 (読むドキュメントの)

他のヒント

受け入れ答えが与えられます:

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

空間がしかし第3の位置に#を置く、3位に配置される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