怎样动态改变GridView特定行的背景色

Page_Load 2014-01-15 07:25:14
GridView数据有 会员代码 会员名称 会员类别 三列 怎样将会员类别这一列数据中 为"预警"的行的背景色变成红色
...全文
1478 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
天空丶蒋 2014-02-10
  • 打赏
  • 举报
回复
引用 19 楼 Page_Load 的回复:
[quote=引用 18 楼 az6161311 的回复:] [quote=引用 15 楼 Page_Load 的回复:] [quote=引用 11 楼 az6161311 的回复:] [quote=引用 8 楼 Page_Load 的回复:] [quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 也许是我没有说清楚吧,我想说的是,你是不是用后台绑定到GridView的??绑定之后你再设置我之前的那代码,这就是动态的获取啊....[/quote]我一个gridView可能绑定不同的数据源哦! [/quote] 那就不行了,如果你是那样的话,你的那个预警字段的位置就发生了变化,那我问问你,你是怎么判定预警的???[/quote] 不好意思 我没说清楚 数据源不管怎么变 我的预警字段的位置都不会变的[/quote] 只要位置不改变,你就可以用这种方法去得到预警啊....
Page_Load 2014-01-20
  • 打赏
  • 举报
回复
引用 18 楼 az6161311 的回复:
[quote=引用 15 楼 Page_Load 的回复:] [quote=引用 11 楼 az6161311 的回复:] [quote=引用 8 楼 Page_Load 的回复:] [quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 也许是我没有说清楚吧,我想说的是,你是不是用后台绑定到GridView的??绑定之后你再设置我之前的那代码,这就是动态的获取啊....[/quote]我一个gridView可能绑定不同的数据源哦! [/quote] 那就不行了,如果你是那样的话,你的那个预警字段的位置就发生了变化,那我问问你,你是怎么判定预警的???[/quote] 不好意思 我没说清楚 数据源不管怎么变 我的预警字段的位置都不会变的
ran丶 2014-01-17
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int state = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "OrderState")); string orderid = DataBinder.Eval(e.Row.DataItem, "id").ToString(); if (state == 1) { e.Row.Attributes.Add("class", "yellow"); System.Web.UI.WebControls.Button btn = e.Row.FindControl("Button1") as System.Web.UI.WebControls.Button; btn.Text = "确认订单"; btn.CommandName = "Confirm"; btn.CommandArgument = orderid; }
天空丶蒋 2014-01-17
  • 打赏
  • 举报
回复
引用 15 楼 Page_Load 的回复:
[quote=引用 11 楼 az6161311 的回复:] [quote=引用 8 楼 Page_Load 的回复:] [quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 也许是我没有说清楚吧,我想说的是,你是不是用后台绑定到GridView的??绑定之后你再设置我之前的那代码,这就是动态的获取啊....[/quote]我一个gridView可能绑定不同的数据源哦! [/quote] 那就不行了,如果你是那样的话,你的那个预警字段的位置就发生了变化,那我问问你,你是怎么判定预警的???
DragonerHuang 2014-01-17
  • 打赏
  • 举报
回复
你的预警是根据什么来判断的?那你就用你的这个判断来做判断就可以了,如果预警那么背景色就改为你想要的颜色就可以了
Page_Load 2014-01-17
  • 打赏
  • 举报
回复
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            { 
                if (DataBinder.Eval(e.Row.DataItem, "前台类别名称字段") == "预警")
                {
                e.Row.Style.Add("background-color", "#b3d3ec");

                }
                
            }
        }
这个写法是对的 只是我GridView绑定数据是使用的是自定义模版页 需要先找到对应控件才能类别字段值
 if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label lb1 = e.Row.FindControl("Label3") as Label;
                if (lb1.Text.Trim() == "超V")
                {
                    e.Row.BackColor = System.Drawing.Color.Red;
                }
Page_Load 2014-01-17
  • 打赏
  • 举报
回复
引用 11 楼 az6161311 的回复:
[quote=引用 8 楼 Page_Load 的回复:] [quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 也许是我没有说清楚吧,我想说的是,你是不是用后台绑定到GridView的??绑定之后你再设置我之前的那代码,这就是动态的获取啊....[/quote]我一个gridView可能绑定不同的数据源哦!
t101lian 2014-01-17
  • 打赏
  • 举报
回复
楼主试试上面的, 肯定没问题,
t101lian 2014-01-17
  • 打赏
  • 举报
回复
引用 楼主 Page_Load 的回复:
GridView数据有 会员代码 会员名称 会员类别 三列 怎样将会员类别这一列数据中 为"预警"的行的背景色变成红色
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            { 
                if (DataBinder.Eval(e.Row.DataItem, "前台类别名称字段") == "预警")
                {
                e.Row.Style.Add("background-color", "#b3d3ec");

                }
                
            }
        }
天空丶蒋 2014-01-16
  • 打赏
  • 举报
回复
引用 8 楼 Page_Load 的回复:
[quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 也许是我没有说清楚吧,我想说的是,你是不是用后台绑定到GridView的??绑定之后你再设置我之前的那代码,这就是动态的获取啊....
md5e 2014-01-16
  • 打赏
  • 举报
回复
那就只能用js来设置了
Page_Load 2014-01-16
  • 打赏
  • 举报
回复
引用 5 楼 az6161311 的回复:
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦
Page_Load 2014-01-16
  • 打赏
  • 举报
回复
引用 3 楼 happytonice 的回复:
方法有多种,给你一种供参考: <asp:GridView ID="GridView1" runat="server" onrowdatabound="GridView1_RowDataBound"> </asp:GridView> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[2].Text.ToString().Trim()=="预警") { e.Row.Cells[2].BackColor = System.Drawing.Color.Red; } } }
为什么我这样写e.Row.Cells[2].Text.ToString().Trim()取到的是空值
淡淡的活着 2014-01-16
  • 打赏
  • 举报
回复
判读那一行的那个字段是否是你需要改变颜色背景的字段 如果是 则改变·呗·
天空丶蒋 2014-01-16
  • 打赏
  • 举报
回复
 

在加载事件中写 Page_Load 事件

//判断,如果审批结果为批准则设置为红色
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[i].Cells[5].Text == "批准")
{
//将当行设置为红色
GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
}
}


 //判断,如果审批结果为批准则设置为红色
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[i].Cells[5].Text == "批准")
{
//将当行设置为红色
GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
}
}





和LZ的差不多,只不过Lz你要修改一下。。
  • 打赏
  • 举报
回复
引用 8 楼 Page_Load 的回复:
[quote=引用 5 楼 az6161311 的回复:]
 

在加载事件中写      Page_Load 事件

//判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red;
                }
            }
 //判断,如果审批结果为批准则设置为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].Cells[5].Text == "批准")
                {
                    //将当行设置为红色
                    GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                }
            }
和LZ的差不多,只不过Lz你要修改一下。。
我的GridView数据是动态的 不能在页面加载写哦[/quote] 这不就是动态的嘛
happytonice 2014-01-15
  • 打赏
  • 举报
回复
方法有多种,给你一种供参考: <asp:GridView ID="GridView1" runat="server" onrowdatabound="GridView1_RowDataBound"> </asp:GridView> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[2].Text.ToString().Trim()=="预警") { e.Row.Cells[2].BackColor = System.Drawing.Color.Red; } } }
楉枫 2014-01-15
  • 打赏
  • 举报
回复
前台绑定数据的时候,判断是否是预警,如果是通过js来给当前行设置背景颜色
天空丶蒋 2014-01-15
  • 打赏
  • 举报
回复
赞一个,我去先做做。。。。。。

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧