GridView行的背景色,在触发事件后丢失

glyuhan 2011-03-04 03:30:57
我在GridView1_RowDataBound 里把每一行的背景色都设了,刷新出来后也正常。
我在GridView1里绑了个RadioButtonList,他的值是数据库查出来的。同时他有个SelectedIndexChanged方法,用来修改数据库的值。
但是一触发上面的方法。行的背景色值就都丢失了,全成了白色,行的文本颜色还是正常的
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
RadioButtonList rb = (RadioButtonList)e.Row.FindControl("rbDateType");
switch (rb.SelectedValue)
{
case "0":
e.Row.ForeColor = System.Drawing.Color.Black;
e.Row.BackColor = System.Drawing.Color.FromName("#E0E0E0 ");
break;
case "1":
e.Row.ForeColor = System.Drawing.Color.Blue;
e.Row.BackColor = System.Drawing.Color.FromName("#CCCCFF ");
break;
case "2":
e.Row.ForeColor = System.Drawing.Color.Red;
e.Row.BackColor = System.Drawing.Color.FromName("#CCCCFF ");
break;
default:
e.Row.ForeColor = System.Drawing.Color.Black;
e.Row.BackColor = System.Drawing.Color.FromName("#E0E0E0 ");
break;
}
}
}
换成 for (int i = 0; i < GridView1.Columns.Count; i++)
{
e.Row.Cells[i].BackColor = System.Drawing.Color.FromName("#E0E0E0 ");
}
也差不多,区别是赋的颜色丢了,变成默认色了
...全文
234 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
glyuhan 2011-03-07
  • 打赏
  • 举报
回复
会哦 绑定了一次后 就应该作为属性了
Airch 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 glyuhan 的回复:]
啊哈哈哈,我终于发现为什么背景色会掉了
System.Drawing.Color.FromName("#E0E0E0") 自定义色居然不能保存为属性
只有系统色System.Drawing.Color.Blue才行。。。我把绑定的背景色都改成系统色 就没掉色的问题了
[/Quote]
字体颜色会自动保存?
glyuhan 2011-03-07
  • 打赏
  • 举报
回复
啊哈哈哈,我终于发现为什么背景色会掉了
System.Drawing.Color.FromName("#E0E0E0") 自定义色居然不能保存为属性
只有系统色System.Drawing.Color.Blue才行。。。我把绑定的背景色都改成系统色 就没掉色的问题了
Airch 2011-03-04
  • 打赏
  • 举报
回复
我也试了下,这样写背景颜色会消失,如果不重新绑定,那加个循环根据单选按钮组的值,重新设置下gridview行的颜色
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
string s = "";
RadioButtonList gRadioButtonList = (RadioButtonList)sender;
DataControlFieldCell dcf = (DataControlFieldCell)gRadioButtonList.Parent;
GridViewRow gvr = (GridViewRow)dcf.Parent;
RadioButtonList rb = (RadioButtonList)GridView1.Rows[gvr.RowIndex].FindControl("rbDateType");
string date = GridView1.Rows[gvr.RowIndex].Cells[1].Text;
s = "update Period set DateType='" + rb.SelectedValue + "' where SystemDate='" + date + "'";
s = WS.Dexecute(s);
switch (rb.SelectedValue)
{
case "0":
GridView1.Rows[gvr.RowIndex].ForeColor = System.Drawing.Color.Black;
GridView1.Rows[gvr.RowIndex].BackColor = System.Drawing.Color.FromName("#E0E0E0");
break;
case "1":
GridView1.Rows[gvr.RowIndex].ForeColor = System.Drawing.Color.Blue;
GridView1.Rows[gvr.RowIndex].BackColor = System.Drawing.Color.FromName("#CCCCFF ");
break;
case "2":
GridView1.Rows[gvr.RowIndex].ForeColor = System.Drawing.Color.Red;
GridView1.Rows[gvr.RowIndex].BackColor = System.Drawing.Color.FromName("#CCCCFF ");
break;
default:
break;
}
//QueryData(); 加上这个重新查询的话。。当然是可以的。。但是每个回传的事件都要加是不行的。。
}
Airch 2011-03-04
  • 打赏
  • 举报
回复
贴你单选按钮的方法代码
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 airch 的回复:]
你以为是js啊,后台的去改变,你那是取的数据库的值,你……
[/Quote]

你该不会以为我是改变了某一行的值之后,这一行的颜色没变,这种问题吧。。。
我的问题是AutoPostBack了之后,所有的Row.BackColor的值都变成空了。。
Airch 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 glyuhan 的回复:]
引用 10 楼 airch 的回复:

引用 9 楼 glyuhan 的回复:
引用 8 楼 airch 的回复:
晕,你的颜色改变只有在RowDataBand时间里处理,你不重新绑定会触发这个事件么?


我擦。。。我以为RowDataBand事件里设了背景色后,就成为行的背景属性了,那个文本颜色就是这样的嘛。
背景色要每次触发RowDataBand重新绑的?

你以为是js……
[/Quote]
你现在只是要实现选择单选按钮改变颜色而已撒,你只要单选的重新绑定啊,其他的为何要重新绑定?
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 airch 的回复:]

引用 9 楼 glyuhan 的回复:
引用 8 楼 airch 的回复:
晕,你的颜色改变只有在RowDataBand时间里处理,你不重新绑定会触发这个事件么?


我擦。。。我以为RowDataBand事件里设了背景色后,就成为行的背景属性了,那个文本颜色就是这样的嘛。
背景色要每次触发RowDataBand重新绑的?

你以为是js啊,后台的去改变,你那是取的数据库的值,你……
[/Quote]
帅锅,每次执行完SelectedIndexChanged里的操作,就重新查询次,的确是可以达成效果。问题是页面里除了这个gridview里的RadioButtonList的回传事件,还有别的回传事件啊....例如下拉框什么的,我不能在每次事件里都加上一次重新查询啊...
Airch 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 glyuhan 的回复:]
引用 8 楼 airch 的回复:
晕,你的颜色改变只有在RowDataBand时间里处理,你不重新绑定会触发这个事件么?


我擦。。。我以为RowDataBand事件里设了背景色后,就成为行的背景属性了,那个文本颜色就是这样的嘛。
背景色要每次触发RowDataBand重新绑的?
[/Quote]
你以为是js啊,后台的去改变,你那是取的数据库的值,你把值弄到数据库里,你要变颜色不重新绑定,颜色怎么变啊,
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 airch 的回复:]
晕,你的颜色改变只有在RowDataBand时间里处理,你不重新绑定会触发这个事件么?
[/Quote]

我擦。。。我以为RowDataBand事件里设了背景色后,就成为行的背景属性了,那个文本颜色就是这样的嘛。
背景色要每次触发RowDataBand重新绑的?
Airch 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 glyuhan 的回复:]
引用 5 楼 airch 的回复:

这样不行吧,你的RadioButtonList是在里面
除非你在点击的时候把数据库的值改了,并且在点击的事件里重新绑定可能会有效果


你意思是改了值之后,重新查询绑定次?貌似很影响性能啊....
[/Quote]
晕,你的颜色改变只有在RowDataBand时间里处理,你不重新绑定会触发这个事件么?
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxr0323 的回复:]

你的CheckBoxList事件里写代码了吗?

没写的话就将CheckBoxList的AutoPostBack属性设置false

设置成AutoPostBack="false"

或者直接拖UpdatePanel哈哈
[/Quote]
拖UpdatePanel 是啥效果? 我去试试。事件里肯定写代码哇,要同时修改数据库值的,AutoPostBack=TRUE
glyuhan 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 airch 的回复:]

这样不行吧,你的RadioButtonList是在里面
除非你在点击的时候把数据库的值改了,并且在点击的事件里重新绑定可能会有效果
[/Quote]

你意思是改了值之后,重新查询绑定次?貌似很影响性能啊....
Airch 2011-03-04
  • 打赏
  • 举报
回复
这样不行吧,你的RadioButtonList是在里面
除非你在点击的时候把数据库的值改了,并且在点击的事件里重新绑定可能会有效果
unicode 2011-03-04
  • 打赏
  • 举报
回复
回传了吧,禁止回传试试
子夜__ 2011-03-04
  • 打赏
  • 举报
回复
你的CheckBoxList事件里写代码了吗?

没写的话就将CheckBoxList的AutoPostBack属性设置false

设置成AutoPostBack="false"

或者直接拖UpdatePanel哈哈
alan_219_2008 2011-03-04
  • 打赏
  • 举报
回复
点击后断点看一下
内容概要:本文提出了一种针对大规模电动汽车接入电网的双层优化调度策略,并基于IEEE33节点系统进了建模与仿真分析,配套提供了完整的Matlab代码实现。该策略构建了上层电网运优化与下层电动汽车充电调度的双层协同模型,综合考虑电网负荷削峰填谷、电压稳定性维持以及电动汽车用户充电需求满足等多重目标,采用先进的优化算法实现对电动汽车集群的智能有序调度。研究详细阐述了双层模型的构建逻辑、目标函数设计、约束条件设定及迭代求解流程,有效降低了电网峰谷差,提升了配电系统对可再生能源的消纳能力,兼具扎实的理论深度与明确的工程应用前景。; 适合人群:电气工程、电力系统及其自动化、能源系统优化等相关专业的研究生、科研人员以及从事智能电网、电动汽车调度、分布式能源管理等领域工作的工程师和技术人员。; 使用场景及目标:①深入研究高比例电动汽车接入对配电网运特性的影响机制;②掌握电力系统双层优化建模方法及其在实际系统中的求解技巧;③实现电动汽车集群的协同调度与车网互动(V2G)优化控制;④作为撰写学术论文、开展课题研究或复现高水平期刊成果的技术参考与代码基础。; 阅读建议:建议读者结合所提供的Matlab代码逐理解双层优化模型的数学表达与程序实现细节,重点剖析上下层模型之间的信息交互机制与收敛判据,可通过调整电动汽车渗透率、充电为参数或引入分布式电源等场景进拓展性仿真,以深化对智能调度策略适应性的认识。

62,269

社区成员

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

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

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

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