GcNumberコントロールでValueが0の場合にTextが””空文字を返す場合がある
対象製品
InputMan for ASP.NET 8.0J
詳細
GcNumberコントロールを使用し、Formatを"########.#"のように設定している場合、Valueが0の時にTextが””空文字を返します。
DisplayFormat、Watermarkを以下のように設定しても回避できません。
<Format Digit="########.#" NegativePrefix="-" />
<DisplayFormat Digit="#######0.0" NegativePrefix="-" />
<Watermark>
<DisplayZero Text="0.0" />
<Zero Text="0" />
</Watermark>
DisplayFormat、Watermarkを以下のように設定しても回避できません。
<Format Digit="########.#" NegativePrefix="-" />
<DisplayFormat Digit="#######0.0" NegativePrefix="-" />
<Watermark>
<DisplayZero Text="0.0" />
<Zero Text="0" />
</Watermark>
回避方法
次のいずれかの方法で問題を回避できます。
方法1. Formatを”#######0.#”と設定します。
方法2. 以下のような関数を通してテキストを取得するようにします。
[VB]
Private Function GetGcNumberText(GcNum As GrapeCity.Web.Input.IMNumber.GcNumber) As String
If GcNum.Value = 0 AndAlso GcNum.Text = "" Then
If GcNum.Watermark Is Nothing Then
Return ""
Else
Return GcNum.Watermark.Zero.Text
End If
Else
Return GcNum.Text
End If
End Function
[C#]
private string GetGcNumberText(GrapeCity.Web.Input.IMNumber.GcNumber GcNum)
{
if (Convert.ToInt32(GcNum.Value) == 0 && GcNum.Text == "")
{
return (GcNum.Watermark == null) ? "" : GcNum.Watermark.Zero.Text;
}
else
{
return GcNum.Text;
}
}
方法1. Formatを”#######0.#”と設定します。
方法2. 以下のような関数を通してテキストを取得するようにします。
[VB]
Private Function GetGcNumberText(GcNum As GrapeCity.Web.Input.IMNumber.GcNumber) As String
If GcNum.Value = 0 AndAlso GcNum.Text = "" Then
If GcNum.Watermark Is Nothing Then
Return ""
Else
Return GcNum.Watermark.Zero.Text
End If
Else
Return GcNum.Text
End If
End Function
[C#]
private string GetGcNumberText(GrapeCity.Web.Input.IMNumber.GcNumber GcNum)
{
if (Convert.ToInt32(GcNum.Value) == 0 && GcNum.Text == "")
{
return (GcNum.Watermark == null) ? "" : GcNum.Watermark.Zero.Text;
}
else
{
return GcNum.Text;
}
}