ASP.NET帮助格式化gridview

时间:2011-06-21 08:29:33

标签: c# asp.net c#-4.0

使用gridview显示从数据集中获取的数据,看起来像

NAME | GP   | ORD_GP | EXP   | TOTAL GP | TARGET
a      206     48      -239     15         1600
b      0       27       0        27        1520
TOTAL  206     75      -239     42         3120 

我正在使用TemplateField,但这只能格式化值。

    <asp:TemplateField HeaderText="%" ItemStyle-BackColor="Yellow" >
        <ItemTemplate>
            <span class='<%# double.Parse(Eval("PERC_OF_TARGET").ToString()) >= 100 ? "PERC_MoreThan" : "PERC_LessThan"  %>'>
            <%# Eval("PERC_OF_TARGET")%> %
        </span>
    </ItemTemplate>
</asp:TemplateField>

然而,我想要做的是格式化最后一行(TOTAL),以便背景颜色为绿色。

还有一种方法,我可以评估每个项目,如果它等于0不显示任何东西,只是留空?

2 个答案:

答案 0 :(得分:1)

使网格视图的最后一行变为绿色:

int r = GridView.Rows.Count;
r--;
GridView.Rows[r].BackColor = System.Drawing.Color.Green;

并评估每个单元格的值,如果其为0,则将其设为空白:

for (int i = 0; i < dt.Rows.Count; i++)
{
    for (int j = 0; j < dataTable.Columns.Count; j++)
    {
        if (Convert.ToInt32(dt.Rows[i][j]) == 0)
        {
            dt.Rows[i][j] = "";
        }
    }
}

希望这就是你所需要的!

答案 1 :(得分:1)

亲爱的你可以使用网格视图预渲染事件来查找最后一行并更改其背景颜色。

protected void grdData_PreRender(object sender, EventArgs e)
{

    grdData.Rows[grdData.Rows.Count - 1].BackColor = System.Drawing.Color.Red; 

}