格式化GridView列基于其他列中的值

时间:2013-05-03 16:22:58

标签: gridview format

我有这样的网格视图:

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%

2 个答案:

答案 0 :(得分: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";
        }
    }

答案 1 :(得分:0)

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