How do I compare a GridView cell value with a float?

I am using an asp:GridView to display data from SQL Server.  I would like to change the color of a cell by comparing a float to the value of the cell (TableCell).  I am using c#.  Below is a snippet that shows what I am attempting to accomplish.  Thank you in advance.
if ((e.Row.Cells[1].Text != "Text on header row") && (e.Rows.Cells[1] < 0.65))
            {
                e.Row.Cells[1].BackColor = System.Drawing.ColorTranslator.FromHtml("#000FF");
            }

Open in new window

BudrophiousAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

abelCommented:
If the cell is certain to have a double/float value, you can use:


if ((e.Row.Cells[1].Text != "Text on header row") && (Double.Parse(e.Rows.Cells[1].Text) < 0.65))
{
    e.Row.Cells[1].BackColor = System.Drawing.ColorTranslator.FromHtml("#000FF");
}

Open in new window

0
abelCommented:
(in the above code Double should be double)

If it is sometimes valid and sometimes not, change it like this:

double cellValue;
double.TryParse(e.Rows.Cells[1].Text, out cellValue);
// cellValue will contain 0.0 if it is not convertible
if ((e.Row.Cells[1].Text != "Text on header row") && (cellValue < 0.65))
{
    e.Row.Cells[1].BackColor = System.Drawing.ColorTranslator.FromHtml("#000FF");
}

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jinalCommented:
Hello ,

I attached code in code snippet. Mailny you have to handle GridView RowDataBound Event .

No need to check headertext and just need to check rowtype.

This is a main part.

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            float cellvalue ;
            bool b = float.TryParse(e.Row.Cells[1].Text,out cellvalue);
            if (b)
            {
                if (cellvalue < 0.65f)
                {
                    e.Row.Cells[1].BackColor = System.Drawing.ColorTranslator.FromHtml("#000FF");
                }
            }
        }
    }





/* ASPX File */
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" 
            onrowdatabound="GridView1_RowDataBound">
        </asp:GridView>    
    </div>
    </form>
</body>
</html>
 
/* Code Behind File */
 
public partial class Default6 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Value", typeof(float));
 
            DataRow dr = dt.NewRow();
            dr[0] = "Test1";
            dr[1] = 0.5f;
            dt.Rows.Add(dr);
 
            dr = dt.NewRow();
            dr[0] = "Test2";
            dr[1] = 1.5f;
            dt.Rows.Add(dr);
 
            GridView1.DataSource = dt;
            GridView1.DataBind();
 
        }
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            float cellvalue ;
            bool b = float.TryParse(e.Row.Cells[1].Text,out cellvalue);
            if (b)
            {
                if (cellvalue < 0.65f)
                {
                    e.Row.Cells[1].BackColor = System.Drawing.ColorTranslator.FromHtml("#000FF");
                }
            }
        }
    }
}

Open in new window

0
BudrophiousAuthor Commented:
Thank you for your responses!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.