`
chenxueyong
  • 浏览: 342061 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

用javascript/css实现GridView行背景色交替、点击行变色

阅读更多

用javascript/css实现GridView行背景色交替、点击行变色

前几天在博问里发现有人问关于 GridView点击行变色 的问题,突然想起很久很久以前,写过一篇文章 一个简单但常用的表格样式--鼠标划过行变色--简洁实现 ,是关于表格行颜色交替和鼠标指向时变色的,正好今天把那一篇补充和扩展一下,加上鼠标点击选择(其实只是点击后变个颜色,“选择”这个词在这里不合适),顺便把这个直接应用到GridView上,如果是其他的控件,或者直接的HTML,稍加修改也可以用上,这里仅提供一个思路。虽然GridView 使用AlternatingRowStyle提供了交替行背景色的问题,但这个东西用着实在不爽,看它生成到HTML的那个table,那叫一个乱啊。

    下面是代码,注释应该还算比较详细,比较适合初学者,可以把下面两个文件的代码直接复制到你的项目中直接执行。最下面有文件的下载地址,也可以直接下载后运行,代码在IE7和Firefox2下测试通过,有任何问题,请在下面留言,我将尽量及时回复。

BackgroundColor.aspx
主要包含一个GridView,是我们折腾的重点对象,还有一堆javascript,是我们折腾GridView的手段
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BackgroundColor.aspx.cs" Inherits="_BackgroundColor" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>BackgroundColor</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView runat="server" ID="gvMeiMingZi"></asp:GridView>
    </form>
    <script type="text/javascript">
        //把事件放在onload里,因为我不知道JS如果直接写到这儿是不是会等页面加载完才执行
        //使用<%=%>方式输出GridView的ID是因为某些情况下(如使用了MasterPage)会造成HTML中ID的变化
        //颜色值推荐使用Hex,如 #f00 或 #ff0000
        window.onload = function(){
            GridViewColor("<%=gvMeiMingZi.ClientID%>","#fff","#eee","#6df","#fd6");
        }
      
        //参数依次为(后两个如果指定为空值,则不会发生相应的事件):
        //GridView ID, 正常行背景色,交替行背景色,鼠标指向行背景色,鼠标点击后背景色
        function GridViewColor(GridViewId, NormalColor, AlterColor, HoverColor, SelectColor){
            //获取所有要控制的行
            var AllRows = document.getElementById(GridViewId).getElementsByTagName("tr");
           
            //设置每一行的背景色和事件,循环从1开始而非0,可以避开表头那一行
            for(var i=1; i<AllRows.length; i++){
                //设定本行默认的背景色
                AllRows.style.background = i%2==0?NormalColor:AlterColor;
               
                //如果指定了鼠标指向的背景色,则添加onmouseover/onmouseout事件
                //处于选中状态的行发生这两个事件时不改变颜色
                if(HoverColor != ""){
                    AllRows.onmouseover = function(){if(!this.selected)this.style.background = HoverColor;}
                    if(i%2 == 0){
                        AllRows.onmouseout = function(){if(!this.selected)this.style.background = NormalColor;}
                    }
                    else{
                        AllRows.onmouseout = function(){if(!this.selected)this.style.background = AlterColor;}
                    }
                }

                //如果指定了鼠标点击的背景色,则添加onclick事件
                //在事件响应中修改被点击行的选中状态
                if(SelectColor != ""){
                    AllRows.onclick = function(){
                        this.style.background = this.style.background==SelectColor?HoverColor:SelectColor;
                        this.selected = !this.selected;
                    }
                }
            }
        }
    </script>
</body>
</html>

BackgroundColor.aspx.cs
用于生成一堆用于测试的数据,不然前面的GridView里啥也没有,就看不出效果了
using System;
using System.Data;

public partial class _BackgroundColor:System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //生成DataTable并添加10个列
        DataTable dt = new DataTable();
        for(int i = 0; i < 10; i++)
        {
            dt.Columns.Add();
        }

        //往DataTable里添加20行数据
        for(int i = 0; i < 20; i++)
        {
            dt.Rows.Add(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
        }

        //将DataTable绑定到GridView
        gvMeiMingZi.DataSource = dt;
        gvMeiMingZi.DataBind();
    }
}
分享到:
评论

相关推荐

    javascript_css实现GridView行背景

    本文将详细介绍如何使用JavaScript与CSS技术来实现`GridView`中的行背景颜色自定义功能,包括背景颜色的交替显示、鼠标悬停时颜色变化以及点击行后的颜色变化。 #### 二、实现原理 实现这些功能主要依靠以下几个...

    用javascript css实现GridView行背景色交替、鼠标划过行变色,点击行变色选中

    在本文中,我们将讨论如何使用它们来实现GridView行背景色的交替、鼠标划过行变色以及点击行变色选中。GridView通常是在ASP.NET中用于显示数据的控件,而JavaScript则可以用来增强用户交互体验。 首先,GridView在...

    点击GridView行变色

    在实际应用中,我们有时需要实现用户交互效果,例如,当用户点击GridView的某一行时,该行背景色发生变化,以提供更好的用户体验。这个例子就展示了如何实现这样的功能。 首先,我们需要在后台代码(C#)中为...

    gridview选中变色实现方法,.net

    ### GridView选中变色实现方法详解 在.NET框架下,特别是在ASP.NET中,GridView控件是一种非常常用的用于显示数据的工具。它不仅功能强大,而且易于使用,支持各种数据源和自定义显示样式。其中,为GridView添加行...

    GridView选定行变色

    要实现“GridView选定行变色”的效果,主要涉及以下几个步骤: 1. **定义选择样式**:我们需要创建一个新的CSS类,用于指定被选中行的样式。例如,可以定义一个名为`SelectedRowStyle`的CSS类,设置背景颜色、字体...

    GridView行背景颜色

    5. **数据绑定时设置颜色**:如果需要根据数据动态设置行的背景色,可以在GridView的数据绑定事件(如DataBound)中检查数据源中的字段,然后根据字段值设置行的背景颜色。 6. **JavaScript/jQuery**:在客户端,...

    B/S GridView开发技巧

    GridView固定表头(不用javascript只用CSS,2行代码,很好用) GridView合并表头多重表头无错完美版(以合并3列3行举例) GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均...

    非常简单易用的girdview鼠标移动或点击的行背景色事件

    在本案例中,我们将讨论如何实现一个非常简单易用的功能,即当鼠标移动到GridView的某一行或者用户点击某一行时,该行的背景色发生变化。这个功能可以提升用户的交互体验,使用户更易于区分当前选中的行。 首先,`...

    Android 点击ListView 或GridView 的一个item 使其里面textview变色

    Android 点击ListView 或GridView 的一个item 使其里面textview变色 详情可访问博客地址:http: blog csdn net gaolei1201 article details 39084159

    20080530数据加密图片信息上传保存到数据库全选GridView数据行变色

    数据行变色可以通过CSS样式或者GridView的RowDataBound事件来实现,根据行的状态或数据项的值动态设置背景色。 5. **前端交互**:前端展示和交互是用户体验的关键。在实现GridView全选效果时,可能需要用到...

    GridView中的TextView选中背景变色

    通过以上步骤,我们就能实现GridView中的TextView在选中时背景变色的效果。这是一个基本的实现方式,实际项目中可能还需要考虑其他因素,如动画效果、多选模式等。此外,还可以通过使用StateListDrawable或者 ...

    .net基础框架gridview单选变色

    例如,使用jQuery,我们可以为GridView的每一行添加一个点击事件,改变背景颜色,并移除其他行的颜色。 ```html &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; $(document).ready...

    GridView实现行颜色交替及与checkbox 结合实现多选的源码

    在GridView中,通过自定义样式或者使用内置的AlternatingRowStyle属性,我们可以使偶数行和奇数行显示不同的背景色,以提高用户的阅读体验。例如,可以设置` AlternatingRowStyle-BackColor`属性为一种浅色,而`....

    GRIDVIEW行随鼠标变色

    在`GridViewRowDataBound`事件处理程序中,可以通过`e.Row.Attributes`为当前行添加JavaScript事件,如`onmouseover`和`onmouseout`,从而实现在鼠标悬停时改变行的背景色。 - **示例代码**: ```csharp ...

    js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色

    这个示例展示了一种方法,通过JavaScript实现GridView的单选效果,同时动态改变行的背景色,包括交替行、选中行以及鼠标悬停时的行。下面我们将详细探讨这些功能的实现。 首先,在后台代码中,我们有一个名为`...

    GridView行的背景随鼠标改变而改变

    当鼠标悬停在GridView某一行时改变其背景色主要依赖于JavaScript的`onmouseover`和`onmouseout`事件。具体来说: - `onmouseover`事件:当鼠标指针进入元素时触发。 - `onmouseout`事件:当鼠标指针离开元素时触发。...

    用GridView画带背景色和点击事件的简单表格

    在本主题中,我们将深入探讨如何使用GridView来创建一个带有自定义背景色和点击事件的简单表格。以下是对这个话题的详细解释: 1. GridView基本概念: GridView继承自AbsListView,它将数据项按照行和列的方式排列...

    上百种GridView操作绝技

    GridView固定表头(不用javascript只用CSS,2行代码,很好用) GridView合并表头多重表头无错完美版(以合并3列3行举例) GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均...

    asp.net鼠标移动到GridView某一行时该行背景变色

    asp.net,GridView控件中鼠标移动到GridView某一行时该行背景色发生变化。

Global site tag (gtag.js) - Google Analytics