
问题描述:
我在做一个关于信用卡管理系统时遇到一个问题:信用卡内金额低于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[];
gvCardUser.DataBind();
for (int i = ; i < gvCardUser.Rows.Count; i++)
{
DataRowView dgv = ds.Tables[].DefaultView[i];
string money = Convert.ToString(dgv["money"]);
if (Convert.ToDouble(money) < )
{
gvCardUser.Rows[i].Cells[].ForeColor = System.Drawing.Color.Red;
}
else
{
gvCardUser.Rows[i].Cells[].ForeColor = System.Drawing.Color.Green;
}
}
这段代码要和数据绑定在一起,在Page_Load时就要实现。
DataRowView dgv = ds.Tables[0].DefaultView[i]; 获取用户自定义的视图
gvCardUser.Rows[i].Cells[5].ForeColor = System.Drawing.Color.Red;
改变字体颜色 通过以上操作,即可实现效果,如图显示:
多多积累经验,记录开发经验,事半功倍