0

我有一个这样的网格视图:

flag                 number
2013                 2315
2013                 25986
YYT Tredn (%)        2
YYT Tredn (%)        3

我想根据标志列中的值格式化数字,例如带有标志 2013 的行以逗号和 YYY 趋势(%)格式化,如下所示:

flag                 number
2013                 2,315
2013                 25,986
YYT Tredn (%)        2%
YYT Tredn (%)        3%
4

2 回答 2

1

可能有点矫枉过正,但这就是我将如何完成您正在尝试做的事情。

    protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        switch (e.Row.Cells[0].Text)
        {
            case "2013":
                e.Row.Cells[1].Text = FormatNumberWithComma(e.Row.Cells[1].Text);
                break;
            case "YYT Tredn (%)":
                e.Row.Cells[1].Text = FormatNumberWithPercent(e.Row.Cells[1].Text);
                break;
        }
    }

    private string FormatNumberWithPercent(string input)
    {
        try
        {
            int result = int.Parse(input);
            return String.Format("{0}%", result);
        }
        catch
        {
            return "NaN";
        }
    }

    private string FormatNumberWithComma(string input)
    {
        try
        {
            int result = int.Parse(input);
            return String.Format("{0:#,###0}", result);
        }
        catch
        {
            return "NaN";
        }
    }
于 2013-05-03T17:55:03.137 回答
0

重新格式化OnRowDataBound事件中的值。我提供的链接中有一个如何执行此操作的示例。

于 2013-05-03T17:38:40.907 回答