问题描述:
我在做一个关于信用卡管理系统时遇到一个问题:信用卡内金额低于100元时,数字颜色显示为红色,其余显示为绿色
之前,尝试了修改成为模板列以及转换成Reapeater控件,甚至用了Jquery,都没达到预期的效果,代码烦杂不易理解。通过查询相关资料,看到了关于DataRowView的介绍。
这里不过多介绍
前台部门核心代码:
<asp:BoundField HeaderText="身份证号码" DataField="identitycardnumber" /> <asp:BoundField HeaderText="性别" DataField="sex" /> <asp:BoundField HeaderText="个人信用等级" DataField="creditstandard" /> <asp:BoundField HeaderText="卡内金额" DataField="money"/>
后台核心代码:
gvCardUser.DataSource = ds.Tables[0]; gvCardUser.DataBind(); for (int i = 0; i < gvCardUser.Rows.Count; i++) { DataRowView dgv = ds.Tables[0].DefaultView[i]; string money = Convert.ToString(dgv["money"]); if (Convert.ToDouble(money) < 100) { gvCardUser.Rows[i].Cells[5].ForeColor = System.Drawing.Color.Red; } else { gvCardUser.Rows[i].Cells[5].ForeColor = System.Drawing.Color.Green; } }
这段代码要和数据绑定在一起,在Page_Load时就要实现。
DataRowView dgv = ds.Tables[0].DefaultView[i];
获取用户自定义的视图
gvCardUser.Rows[i].Cells[5].ForeColor = System.Drawing.Color.Red;
改变字体颜色
通过以上操作,即可实现效果,如图显示:
多多积累经验,记录开发经验,事半功倍