ASP.NET помогите с форматированием gridview - PullRequest
0 голосов
/ 21 июня 2011

я использую 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>

однако я хочу отформатировать последнюю строку (ИТОГО), чтобы фоновый цвет был зеленым.

также есть ли способ, которым я могу оценить каждый элемент, и если он равен 0, ничего не отображать и просто оставить пустым?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

привет, дорогой, вы можете использовать событие prerender вида сетки, чтобы найти последнюю строку и изменить цвет фона.

protected void grdData_PreRender(object sender, EventArgs e)
{

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

}
1 голос
/ 21 июня 2011

для того, чтобы сделать последний ряд вида сетки зеленым:

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] = "";
        }
    }
}

надеюсь, это то, что вам нужно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...