Hi roon3y,
Please refer below sample.
HTML
<asp:GridView runat="server" ID="gv" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="true" />
</HeaderTemplate>
<ItemTemplate>
<table>
<tr>
<td>
<%# Container.DataItemIndex + 1 %>
</td>
<td>
<asp:CheckBox ID="chkRow" runat="server" OnCheckedChanged="check" AutoPostBack="true" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Hire Status">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%# Eval("Status") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
C#
using System.Data;
using System.Drawing;
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = BindGrid();
this.gv.DataSource = dt;
this.gv.DataBind();
}
}
private DataTable BindGrid()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Status", typeof(string)) });
dt.Rows.Add("PROCESS COMPLETE");
dt.Rows.Add("IN PROCESS");
dt.Rows.Add("IN PROCESS");
dt.Rows.Add("PROCESS COMPLETE");
return dt;
}
protected void check(object sender, EventArgs e)
{
foreach (GridViewRow row in gv.Rows)
{
Label status = row.FindControl("lblStatus") as Label;
string StatusValue = status.Text.ToUpper();
CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);
if (chkRow.Checked)
{
if ((StatusValue == "PROCESS COMPLETE") || (StatusValue == "COMPLETE"))
{
row.BackColor = Color.Green;
}
else if ((StatusValue == "IN PROCESS") || (StatusValue == "PROCESSING"))
{
row.BackColor = Color.Orange;
}
else if ((StatusValue == "REJECTED") || (StatusValue == "CANCELLED"))
{
row.BackColor = Color.Red;
}
else
{
row.BackColor = Color.White;
}
}
else
{
row.BackColor = Color.White;
}
}
}
Screenshot
