Как программно отформатировать ячейку radgrid - PullRequest
5 голосов
/ 26 августа 2009

Я должен отформатировать (backcolor, forecolor, style font) ячейки радгрида в зависимости от значения ячейки.

Например Если значение отрицательное, установите передний цвет этой ячейки как красный.

Может ли кто-нибудь сказать мне, как этого можно достичь?

Ответы [ 3 ]

8 голосов
/ 21 июня 2011
 protected void grdName_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            if (Convert.ToInt32(((DataRowView)item.DataItem)["Column"]) < value)
            {
                TableCell cell = item["Column"];
                cell.BackColor = Color.PeachPuff;
            }
        }
    }
4 голосов
/ 28 августа 2009

Добавьте строку onItemDataBound = "Data_OnitemDataBound" в ваше объявление radGrid на странице aspx.

Затем добавьте это в свой код. Число в ячейках [] - это индекс столбца, который вы хотите изменить или проверить.

protected void Data_OnItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        GridDataItem item = (GridDataItem)e.Item;
        if (Convert.ToDecimal(item.Cells[3].Text) < 0)
        {
            item.Cells[3].ForeColor = System.Drawing.Color.Red;
        }
    }
}
1 голос
/ 15 июля 2016

Код ниже может использоваться для всех ячеек в RadGrid.

  protected void RadGrid_ItemDataBound(object sender, GridItemEventArgs e)
    {
        foreach (GridDataItem dataItem in RadGridProduct.MasterTableView.Items)
        {
            int cellCount = dataItem.Cells.Count;

            foreach (GridTableCell item in dataItem.Cells)
            {
                if (item.Text == null ||Convert.ToInt32(item.Text) < 0 )
                    item.BackColor = System.Drawing.Color.Brown;
            }

        }

    }
...