页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestWeb.gridview.WebForm1" %>
<!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 runat="server">
<title></title>
<script type="text/javascript">
var lastNode = null;
function SetColor1(t, evt) {
var obj = window.event ? event.srcElement : evt.target;
if (obj.tagName && (obj.tagName == "TABLE" || obj.tagName == "THEAD" || obj.tagName == "TBODY" || obj.tagName == "TFOOTER")) {
return;
}
if (obj.tagName != "TR") {
obj = obj.parentNode;
}
if (obj == t.rows[0]) return;
if (lastNode) {
lastNode.style.backgroundColor = lastNode.getAttribute("oldColor");
}
obj.setAttribute("oldColor", obj.style.backgroundColor);
obj.style.backgroundColor = "#FF0000";
lastNode = obj;
}
var lastClickNode = null;
function SetColor2(oTr) {
if (lastClickNode) {
lastClickNode.style.backgroundColor = lastClickNode.getAttribute("oldColor");
}
oTr.setAttribute("oldColor", oTr.style.backgroundColor);
oTr.style.backgroundColor = "#FF0000";
lastClickNode = oTr;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h2>
实现方法一</h2>
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
</asp:GridView>
<h2>
实现方法二</h2>
<asp:GridView ID="GridView2" runat="server" OnRowDataBound="GridView2_RowDataBound">
<AlternatingRowStyle BackColor="#9BCD9B" />
<RowStyle BackColor="#EED2EE" />
</asp:GridView>
</form>
</body>
</html>
后台cs代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestWeb.gridview
{
public partial class WebForm1 : System.Web.UI.Page
{
//测试数据
String[] testColor = { "#FFB90F", "#DDA0DD", "#B5B5B5", "#90EE90", "#5D478B", "#2E8B57" };
Random rd = new Random();
protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataSource = GridView2.DataSource = this.CreateMengxianhuiDataSource();
GridView1.DataBind();
GridView2.DataBind();
GridView1.Attributes.Add("onclick", "SetColor1(this,event)");
}
protected System.Data.DataTable CreateMengxianhuiDataSource()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Count", typeof(System.Double)));
dt.Columns.Add(new System.Data.DataColumn("CreateDate", typeof(System.DateTime)));
System.Random rd = new System.Random();
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr[0] = i + i;
dr[1] = "【孟子E章】" + i.ToString();
dr[2] = System.Math.Ceiling(rd.NextDouble() * 1000);
dr[3] = DateTime.Now.AddDays(rd.Next(100) - rd.Next(100));
dt.Rows.Add(dr);
}
return dt;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("style", "background-color:" + testColor[rd.Next(testColor.Length - 1)]);
}
}
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "SetColor2(this)");
}
}
}
}
以上为完整代码,拷贝复制到项目中即可用。