在gridview里单击某一行,该行变色及checkbox被选中
现在我只能点击checkbox时改变其背景色,如果是单击行时checkbox就没有被选中,请高手帮忙
 if (e.Row.RowType == DataControlRowType.DataRow)
            {
                
                e.Row.Attributes.Add("onmouseover","javascript:if(this.bgColor!='#c4d2ea'){this.bgColor='#e0e0e0';}");
                e.Row.Attributes.Add("onmouseout",  "javascript:if(this.bgColor!='#c4d2ea'){this.bgColor='white';}");
                        e.Row.Attributes.Add("onclick", "javascript:if(this.bgColor=='#c4d2ea'){this.bgColor='#F0F0E8';}else{this.bgColor='#c4d2ea';}");
                //设置悬浮鼠标指针形状为"小手"
                e.Row.Attributes["style"] = "Cursor:hand";
            }

解决方案 »

  1.   

    可以参考一下:
    http://www.cnblogs.com/chenping-987123/archive/2010/08/27/1809877.html
      

  2.   

    滑过变色 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                //鼠标滑过时,改变颜色
                e.Row.Attributes.Add("onmouseover", "myc = this.style.backgroundColor;this.style.backgroundColor='#507CD1'");
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=myc");            e.Row.Cells[0].Visible = false;
            }
    单击变色
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %><!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>
    </head>
    <script language="javascript">
    function yourfunction(obj){
                 for(var i=0;i<22;i++)
                 {
                     document.getElementById(i).style.backgroundColor="#400000";
                 }
                 document.getElementById(obj).style.backgroundColor="red";              
            }    
    function yourfunction2(obj){
                  alert(obj);            
            } 
    </script>
    <body>
        <form runat="server">
        <div>
            <asp:GridView runat="server" AutoGenerateColumns="False" DataKeyNames="au_id"
                DataSourceID="SqlDataSource1"  OnRowCreated="GridView1_RowDataBound" EnableSortingAndPagingCallbacks="True" >
                <Columns>
                    <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True" SortExpression="au_id" />
                    <asp:BoundField DataField="au_lname" HeaderText="au_lname" SortExpression="au_lname" />
                    <asp:BoundField DataField="au_fname" HeaderText="au_fname" SortExpression="au_fname" />
                    <asp:BoundField DataField="phone" HeaderText="phone" SortExpression="phone" />
                    <asp:BoundField DataField="address" HeaderText="address" SortExpression="address" />
                    <asp:BoundField DataField="city" HeaderText="city" SortExpression="city" />
                    <asp:BoundField DataField="state" HeaderText="state" SortExpression="state" />
                    <asp:BoundField DataField="zip" HeaderText="zip" SortExpression="zip" />
                    <asp:CheckBoxField DataField="contract" HeaderText="contract" SortExpression="contract" />
                </Columns>
                <SelectedRowStyle BackColor="#400000" BorderStyle="Double" />
            </asp:GridView>
            <asp:SqlDataSource runat="server" ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>"
                SelectCommand="SELECT * FROM [authors]"></asp:SqlDataSource>
        
        </div>
        </form>
    </body>
    </html>
    后台using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Default4 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.GridView1.SelectedIndex = 0;
        }
        protected   void   GridView1_RowDataBound(object   sender,   GridViewRowEventArgs   e)
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                for (int i = 0; i <= GridView1.Rows.Count; i++) 
                {
                    e.Row.Attributes.Add("onclick", "yourfunction(" +i+ ");");
                    e.Row.Attributes.Add("id",""+i+"");
                    e.Row.Attributes.Add("ondblclick", "yourfunction2(" + i + ");");
                } 
            } 
        } 
      
    }
    window.onload = function(){
                var grid = document.getElementById("GridView1").children[0].children;
                for(var i=1;i<grid.length;i++){
                    grid[i].style.cursor="pointer";
                    grid[i].onclick=function(){
                        for(var i=1;i<grid.length;i++){
                            grid[i].style.backgroundColor="white";
                        }
                        this.style.backgroundColor="red";
                    }
                }
            }
      

  3.   

    大概就是这样,没有测试
    <script>
    //调用
    function changrow()
    {
    var evt=getEvent();
    var element=evt.srcElement || evt.target;
    while(e=e.parentNode)
    {
    if(e.tagName=="TR")
    {
    setcolor(e);
    break;
    }
    }
    }
    //设置背景色
    function setcolor(e)
    {
    var td=e.getElementsByTagName("td")
    for(var i=0;i<td.length;i++)
    {
    if(td[i].bgColor=="#c4d2ea")
    {
    td[i].bgColor="#F0F0E8";
    setchecked(e,false);
    }
    else
    {
    td[i].bgColor="#c4d2ea";
    setchecked(e,true);
    }

    }

    }
    //选取对象
    function setchecked(e,flang)
    {
    var cb=e.getElementsByTagName("input")
    for(var i=0;i<cb.length;i++)
    {
    if(cb[i].type=="checkbox")
    {
    cb[i].checked=flang;
    }
    }
    }
    //获取触发的对象
    function getEvent()
    {
    if(document.all)
    {
    return window.event;//如果是ie
    }
    func=getEvent.caller;
    while(func!=null)
    {
    var arg0=func.arguments[0];
    if(arg0)
    {
    if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
    ||(typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
    {
    return arg0;
    }
    }
    func=func.caller;
    }
    return null;
    }
    </script>e.Row.Attributes.Add("onclick", "changrow()");
      

  4.   

            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                //鼠标滑过改变颜色
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    //鼠标停留时更改背景颜色
                    e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00a9ff'");
                    //当鼠标离开这个区域时,颜色变化
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
                }
            }