用一些空单元格在gridview上比较日期和今天

本文关键字:比较 日期 今天 gridview 单元格 | 更新日期: 2023-09-27 18:13:41

我想更改过期字段的颜色。我想将该列的值与今天的日期进行比较,如果过期,则将其标记为红色。不是每一行都有值。所有这些数据都绑定到gridview中显示的SQL数据源。当我试图通过在DataRowBound上做代码时,它告诉我"字符串未被识别为有效的日期时间"这里有任何帮助吗?我希望它能影响Expiration字段和Action

谢谢!

protected void GridView1_DataBound(object sender, EventArgs e)
    {
        if (GridView1.Rows[0].Cells[0].Text.Equals("Vendor"))
            GridView1.Rows[0].Visible = false;
        colorRed();
    }
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DateTime myDate = Convert.ToDateTime(e.Row.Cells[10].Text);
            if (DateTime.Now < myDate)//10 is for the expired field
            {
                e.Row.ForeColor = System.Drawing.Color.Red;
            }
        }
    }

我在html中绑定了代码,所以我能做些什么来解决这个问题?

用一些空单元格在gridview上比较日期和今天

您确定单元格[10]包含日期时间吗?

单元格从0

开始索引

运行debug,获取Cells[10]的值。文本并检查是否正确

哇,这是一个简单的修复。我没有检查正确的值。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (!(e.Row.Cells[10].Text.Equals("&nbsp;")))//Needed to check for this
            {
                DateTime myDate = Convert.ToDateTime(e.Row.Cells[10].Text);
                if (DateTime.Now < myDate)
                {
                    e.Row.ForeColor = System.Drawing.Color.Red;
                }
            }
        }
    }