收录日期:2021/01/28 17:13:19 时间:2016/07/31 12:13:27 标签:ASP.NET
环境:VS2008,C#
问题:
      从数据库中提取表信息填充到单元格内,数据表里有条时间记录(格式:YYY-MM-DD)读取到GridView后,我想通过判断当前时间改变日期字体颜色 或者单元格背景色,比如,表中时间>当前时间,显示为蓝色字体,否则显示为红色字体,或者修改单元格背景色为红色或者蓝色,请兄弟姐妹告诉怎么实现
貌似给的有模板
加入IF判断语句,在前台加入,像<% if(1>2)%>  <%{%>  1不大于2 <%}%>
if (e.Row.RowType == DataControlRowType.DataRow)
            {
if(时间>系统时间){
                e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF';");}
else
{
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor =currentcolor");
            }
}
或者在前台写JS实现!
判断时间呗  时间判断过以后想改变颜色的话加个<span>标签就可以了
不好意思,上面是鼠标悬浮的颜色,适当改下就可以,
e.Row.Attributes.Add("this.style.backgroundColor", "#00A9FF");}
引用 6 楼 ranen2010 的回复:
不好意思,上面是鼠标悬浮的颜色,适当改下就可以,
e.Row.Attributes.Add("this.style.backgroundColor", "#00A9FF");}

+1
引用 3 楼 ranen2010 的回复:
C# code
if (e.Row.RowType == DataControlRowType.DataRow)
            {
if(时间>系统时间){
                e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#0……


 给成模板列,,然后在行绑定事件里面写以上代码就好
在RowDataBind中判断。



<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
        </asp:GridView>



public class Demo
        {
            public string ID { set; get; }
            public DateTime Time { set; get; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.GridView1.DataSource = new System.Collections.Generic.List<Demo>()
                { 
                      new Demo(){ ID="S001", Time=DateTime.Now.AddDays(-1)},
                      new Demo(){ ID="S002", Time=DateTime.Now.AddDays(1)},
                      new Demo(){ID="S003", Time=DateTime.Now.AddDays(-2)},
                      new Demo(){ID="S004", Time=DateTime.Now.AddDays(2)},
                      new Demo(){ID="S005", Time=DateTime.Now.AddHours(2)},
                      new Demo(){ID="S006", Time=DateTime.Now.AddHours(1)},
                };
                this.GridView1.DataBind();
            }
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == DataControlRowState.Normal)
                {
                    DateTime time = Convert.ToDateTime(DataBinder.Eval(e.Row.DataItem, "Time"));
                    if (time > DateTime.Now)
                    {
                        e.Row.Cells[1].Attributes.Add("style", "background:blue;");
                    }
                    else
                    {
                        e.Row.Cells[1].Attributes.Add("style", "background:red;");
                    }
                }
            }
        }
rowdatabind事件里判断

如何把子查询的某个字段根据参数insert到一个表的不同字段中去? 很急,请各位帮忙! 如何显示录音和播放声音峰形条,就像winamp的那种!! javabean 或 jsp 调用C\\C++问题 请教:Oracle中有没有与SQL Server中的Left join .....on ...语句相试的语句? 我想在公园开个数码照相的摊子,大家能提供我旅游风光的图片吗,如长城,金字塔,艾斐尔铁塔,故宫,象山等 内存溢出问题,急!急!急! 关于处理Checkbox的问题! 使用webservice出现问题 一道简单的面试题,请大家帮忙 Internet上一个需要登陆才有权看到的网页。我怎么写程序直接登陆阿!(知道用户名和密码)。 高手指教,局域网问题? 问一个关于网卡启动芯片的问题~ 新手问题: combo.additem rs!设备名称, 这一句出错了! 如何使用adostoredproc,可以举的例子吗?!谢谢各位大哥 立马给分:用ATL生成一个供ASP使用的COM,它的OnStartPage只被调用了一次, 换了一个客户端也是如此?为什么会这样? 为什么在asp.net里用Request.QueryString取不到值? 如何将datagrid中改动后的数据更新回后台数据库中? 新手问题: combo.additem rs!设备名称, 这一句出错了! 那里有asp.net的帮助文件,或开发手册,能够查询server控件的属性和方法,简体中文最好。 关于内存注册机的实现 求网上书店源程序!不做商业用途!学习用! 关于OC4J与servlet的最基本的问题! 局域网多了一台不明来历的计算机??怎么办? 安装完Oracl8i服务器端后怎么用DBA登陆并创建一个用户?在线等待! 困惑了几年的问题,关于SQL SERVER的客户端备份与恢复 请教单片机和采用vb的工控机通讯时产生的错误问题!(急等,请各位帮忙!) 如何把字段名为ID的改成自动增量?? 请高手指教:如何把DataTimePicker里的日期加到ACCESS数据库的问题 上海加拿大独资企业招聘asp+sqlserver程序员水平差的不要。