C# 比较GridDataItem单元格中的日期以便为该单元格着色
我需要更改单元格的颜色-这取决于日期-我可以更改单元格的颜色,这里没有问题C# 比较GridDataItem单元格中的日期以便为该单元格着色,c#,telerik-grid,C#,Telerik Grid,我需要更改单元格的颜色-这取决于日期-我可以更改单元格的颜色,这里没有问题 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.
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);
}
}
然而,它试图访问“日期”-我遇到了我的错误
我已经附上了我的电子产品的图片
您收到的确切错误消息是什么?我的假设是,当您将字符串cell.Text与DateTime对象DateTime.Now进行比较时,会出现无效的强制转换异常。尝试将文本转换为datetime对象,如下所示:
if(DateTime.Compare(Convert.ToDateTime(item["run_date"].Text), DateTime.Now) > 0)
或者看看单元格本身,我认为它返回一个对象,并将其转换为datetime对象
if(DateTime.Compare((DateTime)item["run_date"], DateTime.Now) > 0)
试试这个
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...
}
}
}
参考:Hi Matt-我遇到了一个问题“找不到绑定到列名“run_Date”的单元格”。第一行使用.Text属性有效吗?如果不是,这是一个模板化的字段/单元格吗?如果它是一个模板化的字段/单元格,则需要找到保存该值的实际控件。例如TextBox=(TextBox)项[“运行日期”]。FindControl(“”);两个可能有用的链接: