4

C#では

データベースに「###」または「##」の形式の処理時間番号データ列があります(例:「813」または「67」)

グリッドビューにバインドするときに、この形式「0。###」で表示したかった(例:「0.813」または「0.067」)

{0:0.000}やその他の書式を使用してみました。しかし、どれも機能していないようです。フォーマット文字列の書き方を教えてもらえますか?

4

7 に答える 7

4

表示する前に実際に .001 を掛ける必要があります。その後、通常の{0:0.000}書式文字列を使用できます。

何らかの理由でそれが不可能な場合{0:0\\.000}は、「.」を使用するフォーマット文字列を使用できます。小数点としてではなく、リテラルとして。

于 2008-11-24T16:34:46.817 に答える
2

フォーマット文字列を有効にするには、その列でHTMLエンコーディングを無効にする必要があります。

参考文献

于 2008-11-24T15:57:04.660 に答える
1

素敵な投稿、本当に助かりました。しかし、このようにする方が良いです:

try
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (((DataRowView)(e.Row.DataItem))["Columnname"].ToString().Equals("Total", StringComparison.OrdinalIgnoreCase))
        {
            e.Row.Font.Bold = true;
            //-----or ant thing you want to do------
        }
    }
}
catch (Exception ex)
{

}
于 2010-06-18T15:35:42.210 に答える
1

これは、数値スケーリング指定子として使用できる"," Custom Specifierを使用して実行できます。

数値スケーリング指定子: 明示的または暗黙的な小数点のすぐ左に 1 つ以上のコンマが指定されている場合、書式設定される数値はコンマごとに 1000 で除算されます。

あなたの例では、フォーマット文字列{0:0,.000}を使用して 813 を としてフォーマットできます0.813

2 つのカンマは 1,000,000 単位でスケーリングされます。たとえば、{0:0,,.0M}1753456 は のようにフォーマットされ1.8Mます。

于 2012-02-11T09:10:43.360 に答える
0

それで、あなたはこのようなものを探していますか?

String.Format("{0:0.000}", test/1000);
于 2008-11-24T17:19:22.203 に答える
0

なんらかの理由で値をグリッドにバインドする前に値を変更できない場合は、RowDataBound イベントを処理し、数値を表示する前に 1000 で割ることができます。

// Handle the grid's RowDataBound event
MyGridView.RowDataBound += new GridViewRowEventHandler(MyGridView_RowDataBound);

// Set the value to x / 1000 in the RowDataBound event
protected void MyGridView_RowDataBound( object sender, GridViewRowEventArgs e )
{
    if( e.Row.RowType != DataControlRowType.DataRow )
      return;

    // Cast e.Row.DataItem to whatever type you're binding to
    BindingObject bindingObject = (BindingObject)e.Row.DataItem;

    // Set the text of the correct column.  Replace 0 with the position of the correct column
    e.Row.Cells[0].Text = bindingObject.ProcessingTime / 1000M;
}
于 2008-11-24T16:43:25.753 に答える
0

ということですか?

GridView.DataSource = .... 

BoundField total = new BoundField();
total.DataField = "Total";
total.HeaderText = "Total Amount";
total.DataFormatString = "{0:C}";
donations.Columns.Add(total);

......
于 2009-01-06T23:21:09.847 に答える