0

我需要更改单元格的颜色 - 这取决于日期 - 我可以更改单元格的颜色,这里没有问题

        GridDataItem item = e.Item as GridDataItem;

        **if ((item["run_Date"].Text > DateTime.Now))** //error is in this line of code
        {
            foreach (GridColumn col in radgrdResultDetail.MasterTableView.Columns)
            {
                item["run_Date"].BackColor = Color.FromArgb(255, 106, 106);

            }
        }

但是它试图访问“日期”-我遇到了我的错误,我附上了我的 e.item 的图像

在此处输入图像描述

4

2 回答 2

1

您收到的确切错误消息是什么?我的假设是,当您将字符串 cell.Text 与 DateTime 对象 DateTime.Now 进行比较时,您会得到一个无效的强制转换异常。尝试将文本转换为日期时间对象,如下所示:

if(DateTime.Compare(Convert.ToDateTime(item["run_date"].Text), DateTime.Now) > 0)

或查看单元格本身,我认为它返回一个对象,并将其转换为日期时间对象

if(DateTime.Compare((DateTime)item["run_date"], DateTime.Now) > 0)
于 2012-06-12T14:33:23.610 回答
1

试试这个

protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    //Is it a GridDataItem
    if (e.Item is GridDataItem)
    {
        //Get the instance of the right type
        GridDataItem item= e.Item as GridDataItem;

        //Check the formatting condition
        if(DateTime.Compare(Convert.ToDateTime(item["run_date"].Text), DateTime.Now) > 0)
        {
            item["run_Date"].BackColor = Color.FromArgb(255, 106, 106);
            //Customize more...
        }
    }
}

参考:
ItemDataBound 上行/单元格的条件格式
如何在指定条件下更改 RadGrid 的行颜色?

于 2012-06-12T14:51:24.790 回答