您的位置:程序门 -> .net技术 -> asp.net



如何实现鼠标指向gridview控件的行时,该行改变颜色,离开该行时又恢复原来的颜色???


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何实现鼠标指向gridview控件的行时,该行改变颜色,离开该行时又恢复原来的颜色???[已结贴,结贴人:foshan]
发表于:2007-03-08 17:53:25 楼主
如何实现鼠标指向gridview的行时,该行改变颜色,离开该行时又恢复原来的颜色???这个肯定要用到javascript脚本了吗?还是gridview控件本身有此功能???
发表于:2007-03-08 17:55:501楼 得分:0
onmouseover
onmouseout
发表于:2007-03-08 19:17:572楼 得分:6
protected   void   gridview1_rowcreated(object   sender,   gridviewroweventargs   e)
        {
                if   ((e.row.rowstate   ==   datacontrolrowstate.normal   ¦ ¦   e.row.rowstate   ==   (datacontrolrowstate.selected   ¦   datacontrolrowstate.normal))   &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= '#e3eaeb '; ");
                }
                if   ((e.row.rowstate   ==   datacontrolrowstate.alternate   ¦ ¦   e.row.rowstate   ==   (datacontrolrowstate.selected   ¦   datacontrolrowstate.alternate))
                        &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= 'white '; ");
                }
        }
发表于:2007-03-09 08:26:453楼 得分:0

ok!搞定,好用啊!谢谢了!
发表于:2007-03-09 08:35:374楼 得分:0
还有一个问题,我的一个页面中有五个gridview控件,均要求要实现鼠标指向gridview的行时,该行改变颜色,离开该行时又恢复原来的颜色。如果逐个gridview控件均在rowcreated事件加上上述代码,变得代码太繁琐,重复利用率不高。如何能实现五个gridview控件共享上述的代码???谢谢!
发表于:2007-03-09 08:50:485楼 得分:0
这样好像可以,大家看看。

protected   void   gridview5_rowcreated(object   sender,   gridviewroweventargs   e)
        {
            change(e);
        }
protected   void   gridview4_rowcreated(object   sender,   gridviewroweventargs   e)
        {
                change(e);
        }
        protected   void   gridview3_rowcreated(object   sender,   gridviewroweventargs   e)
        {
                change(e);
        }
        protected   void   gridview2_rowcreated(object   sender,   gridviewroweventargs   e)
        {
                change(e);
        }
        protected   void   gridview1_rowcreated(object   sender,   gridviewroweventargs   e)
        {
                change(e);
        }
        protected   void   change(gridviewroweventargs   e)
        {
                if   ((e.row.rowstate   ==   datacontrolrowstate.normal   ¦ ¦   e.row.rowstate   ==   (datacontrolrowstate.selected   ¦   datacontrolrowstate.normal))   &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= '#e3eaeb '; ");
                }
                if   ((e.row.rowstate   ==   datacontrolrowstate.alternate   ¦ ¦   e.row.rowstate   ==   (datacontrolrowstate.selected   ¦   datacontrolrowstate.alternate))
                        &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= 'white '; ");
                }
        }
发表于:2007-03-13 10:12:026楼 得分:0
ding
发表于:2007-05-21 16:26:177楼 得分:0
还有一个问题:在此基础上,如何实现对于   已选定   的行,光标的移过   已选定的行   不改变其颜色,只改变非已选定行的颜色?谢谢!
发表于:2007-05-23 17:52:178楼 得分:0
去掉上边的selected状态,像这样即可
protected   void   change(gridviewroweventargs   e)        
{
                if   (e.row.rowstate   ==   datacontrolrowstate.normal   &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= '#e3eaeb '; ");
                }
                if   (e.row.rowstate   ==   datacontrolrowstate.alternate   &&   e.row.rowtype   ==   datacontrolrowtype.datarow)
                {
                        e.row.attributes.add( "onmouseover ",   "this.style.backgroundcolor= '#b1cff8 ' ");
                        e.row.attributes.add( "onmouseout ",   "this.style.backgroundcolor= 'white '; ");
                }
        }
发表于:2007-05-24 09:31:069楼 得分:0
谢谢hchlee(hchlee)!   你提供的代码,当选定一行后,然后上下移动鼠标,该选定行的背景颜色就变成了不是选定行的背景颜色了,然后再选定该行,然后再上下移动鼠标,这时该选定行的背景颜色就不会改变了。
换言之,就是要连续点击   两次   某行(连续两次选定该行),才会使该选定行的背景颜色不会因鼠标的onmouseover和onmouseout事件而改变。
怎么样才能实现   一次   选定该行后,上下移动鼠标,不会改变该选定行的背景颜色???谢谢!


快速检索

热门点击