1

以下のコードには全体として 10 進数の表現が含まれていますが、DB に 0.00 の値がある場合は 0 として表示する必要がありますが、この形式では GridView は空の値をレンダリングしています。DB ( decimalFromDB )への入力として整数のみを受け入れています。10 進数である理由は、将来的には b/c であり、10 進数を含むデータが存在する可能性があります。今のところ、整数として表示したいだけで、0.00 の場合は 0 を表示します。

    <asp:BoundField DataField="decimalFromDB" HeaderText="Number" 
        SortExpression="Number" DataFormatString="{0:####}" 
        NullDisplayText="0" />

trDataFormatString="{0:d}" または {0:D} の場合、Stack Track からこのエラーが発生します

[FormatException: Format specifier was invalid.]
   System.Number.FormatDecimal(Decimal value, String format, NumberFormatInfo info) +0
   System.Decimal.ToString(String format, IFormatProvider provider) +39
   System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) +729
   System.String.Format(IFormatProvider provider, String format, Object[] args) +107
   System.Web.UI.WebControls.BoundField.FormatDataValue(Object dataValue, Boolean encode) +440
   System.Web.UI.WebControls.BoundField.OnDataBindField(Object sender, EventArgs e) +139
   System.Web.UI.Control.OnDataBinding(EventArgs e) +91
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +92
   System.Web.UI.Control.DataBind() +15
   System.Web.UI.Control.DataBindChildren() +201
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +101
   System.Web.UI.Control.DataBind() +15
   System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +166
   System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +3896
   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +66
   System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
   System.Web.UI.WebControls.GridView.DataBind() +4
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
   System.Web.UI.Control.EnsureChildControls() +102
   System.Web.UI.Control.PreRenderRecursiveInternal() +42
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496
4

1 に答える 1

3

から: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx

試すDataFormatString="{0:D}"

于 2013-01-09T19:12:21.750 に答える