如何做鼠标放到DataGrid的一行上,那行的背景颜色变为黄色,移开鼠标后又变为以前的颜色??谁可以来个完整的实例吗//

解决方案 »

  1.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex!=-1)
    {
    e.Item.Attributes.Add("onmouseover","this.setAttribute('BKC',this.style.backgroundColor);this.style.backgroundColor='#EEEEEE'");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=this.getAttribute('BKC');");
    }
    }
      

  2.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)         {              //为每个单元格添加事件              if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)              {                   //鼠标指针样式                   e.Item.Style.Add("CURSOR","hand");                   TableCell cell;                   for(int i=0;i<e.Item.Cells.Count;i++)                   {                            cell = e.Item.Cells[i];                            int RowID = e.Item.ItemIndex;                            int ColumnID = i;                    //鼠标停在单元格上时的样式     cell.Attributes["onmouseover"]="this.style.backgroundColor='#d3d3d3'";              //鼠标离开时的样式              cell.Attributes["onmouseout"]="this.style.backgroundColor='#FFFFFF'";          cell.Attributes["ondblclick"]="javascript:Dg_dbClick('"+RowID+"','"+ColumnID+"')";                   }              }         } 
      

  3.   

    上面都写完了
    主要就是用e.Item.Attributes.Add这个东西,是添加客户端脚本的方法。
      

  4.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=197191
      

  5.   

    严重同意  Eddie005(暴走005)
    孟子的网站上也有完整的例子,你可以去看看http://dotnet.aspx.cc/
      

  6.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 

    //颜色交替   
    e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#C0C0FF'"); 
    if(e.Item.ItemType == ListItemType.Item) 

    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'"); 
    }  if(e.Item.ItemType ==ListItemType.AlternatingItem) 

    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='seashell'"); 

    }  }
    颜色你需要自己改一下
      

  7.   

    还是不懂,代码加不上去,我是初学有所长者
    我的代码,请问加在那里。.aspx
     
    <form id="Form1" runat="server">

    <asp:datagrid id="MyDataGrid" runat="server" PagerStyle-HorizontalAlign="Right" PagerStyle-NextPageText="下一页"
    PagerStyle-PrevPageText="上一页" HeaderStyle-BackColor="#AAAADD" AlternatingItemStyle-BackColor="#FFFFC0"
    BorderColor="Black" CellPadding="2" CellSpacing="0" AutoGenerateColumns="False" AllowPaging="True"
    OnPageIndexChanged="ChangePage" PageSize="5">
    <Columns>
    <asp:BoundColumn DataField="姓名" ReadOnly="True" HeaderText="姓名"></asp:BoundColumn>
    <asp:BoundColumn DataField="编号" ReadOnly="True" HeaderText="编号"></asp:BoundColumn>

    </Columns>
    <PagerStyle NextPageText="上一页" PrevPageText="下一页"></PagerStyle>
    </asp:datagrid>

    </form>----------------------------------------------------------------------------
    .asp.vb Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
           
     If Not IsPostBack Then
             
      open_mdb '如果都一次加载那么执行open_mdb        End If    End Sub Sub ChangePage(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
            MyDataGrid.CurrentPageIndex = e.NewPageIndex
           open_mdb
        End Sub   Subopen_mdb
            Dim Conn As OleDbConnection
            Dim Adpt As OleDbDataAdapter
            Dim Ds As DataSet        Dim Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
            Dim Database = "Data Source=" & Server.MapPath("数据库.mdb")
            Conn = New OleDbConnection(Provider & ";" & Database)
            Conn.Open()        Dim SQL = "Select * From 资料表"
            Adpt = New OleDbDataAdapter(SQL, Conn)        Ds = New DataSet
            Adpt.Fill(Ds, "资料表")        myDataGrid.DataSource = Ds.Tables("资料表").DefaultView
            myDataGrid.DataBind()        Conn.Close()
        End Sub
      

  8.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)         {              //为每个单元格添加事件              if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)              {                   //鼠标指针样式                   e.Item.Style.Add("CURSOR","hand");                   TableCell cell;                   for(int i=0;i<e.Item.Cells.Count;i++)                   {                            cell = e.Item.Cells[i];                            int RowID = e.Item.ItemIndex;                            int ColumnID = i;                    //鼠标停在单元格上时的样式     cell.Attributes["onmouseover"]="this.style.backgroundColor='#d3d3d3'";              //鼠标离开时的样式              cell.Attributes["onmouseout"]="this.style.backgroundColor='#FFFFFF'";          cell.Attributes["ondblclick"]="javascript:Dg_dbClick('"+RowID+"','"+ColumnID+"')";                   }              }         } 
      

  9.   


     
     
       还是不懂,代码加不上去,我是初学者//////////////////我的代码,请问加在那里。.aspx
     
    <form id="Form1" runat="server">

    <asp:datagrid id="MyDataGrid" runat="server" PagerStyle-HorizontalAlign="Right" PagerStyle-NextPageText="下一页"
    PagerStyle-PrevPageText="上一页" HeaderStyle-BackColor="#AAAADD" AlternatingItemStyle-BackColor="#FFFFC0"
    BorderColor="Black" CellPadding="2" CellSpacing="0" AutoGenerateColumns="False" AllowPaging="True"
    OnPageIndexChanged="ChangePage" PageSize="5">
    <Columns>
    <asp:BoundColumn DataField="姓名" ReadOnly="True" HeaderText="姓名"></asp:BoundColumn>
    <asp:BoundColumn DataField="编号" ReadOnly="True" HeaderText="编号"></asp:BoundColumn>

    </Columns>
    <PagerStyle NextPageText="上一页" PrevPageText="下一页"></PagerStyle>
    </asp:datagrid>

    </form>----------------------------------------------------------------------------
    .asp.vb Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
           
     If Not IsPostBack Then
             
      open_mdb '如果都一次加载那么执行open_mdb        End If    End Sub Sub ChangePage(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
            MyDataGrid.CurrentPageIndex = e.NewPageIndex
           open_mdb
        End Sub   Subopen_mdb
            Dim Conn As OleDbConnection
            Dim Adpt As OleDbDataAdapter
            Dim Ds As DataSet        Dim Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
            Dim Database = "Data Source=" & Server.MapPath("数据库.mdb")
            Conn = New OleDbConnection(Provider & ";" & Database)
            Conn.Open()        Dim SQL = "Select * From 资料表"
            Adpt = New OleDbDataAdapter(SQL, Conn)        Ds = New DataSet
            Adpt.Fill(Ds, "资料表")        myDataGrid.DataSource = Ds.Tables("资料表").DefaultView
            myDataGrid.DataBind()        Conn.Close()
        End Sub
      
     
      

  10.   

    cell.Attributes("ondblclick") = "javascript:Dg_dbClick('" + RowID + "','" + ColumnID + "')"
    这句的错误:从字符串“javascript:Dg_dbClick('”到类型“Double”的强制转换无效。 
    该怎么改?
      

  11.   

    我朋友改成VB 的了你把这些代码加到
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
           
     If Not IsPostBack Then
             
      open_mdb '如果都一次加载那么执行open_mdb        End If    End Sub
    ‘---------------------------------
    ’加到这里
        Private Sub masterDataGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles masterDataGrid.ItemDataBound
            '为每个单元格添加事件
            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then            '鼠标指针样式
                e.Item.Style.Add("CURSOR", "hand")
                Dim cell As TableCell
                Dim i As Integer
                For i = 0 To e.Item.Cells.Count - 1
                    cell = e.Item.Cells(i)
                    Dim RowID As Integer = e.Item.ItemIndex
                    Dim ColumnID As Integer = i
                    '鼠标停在单元格上时的样式
                    cell.Attributes("onmouseover") = "this.style.backgroundColor='#d3d3d3'"
                    '鼠标离开时的样式
                    cell.Attributes("onmouseout") = "this.style.backgroundColor='#FFFFFF'"
                    'cell.Attributes("ondblclick") = "javascript:Dg_dbClick('" + RowID + "','" + ColumnID + "')"            Next i
            End If
        End Sub
    ---------------------
    'cell.Attributes("ondblclick") = "javascript:Dg_dbClick('" + RowID + "','" + ColumnID + "')"这句的错误:从字符串“javascript:Dg_dbClick('”到类型“Double”的强制转换无效。 
    我不知道该怎么改?
      

  12.   

    private void dgdObject_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {

    /////鼠标移动时行变色
    if(e.Item.ItemIndex >= 0)
    {
    e.Item.Attributes["onmouseover"] = "this.name=this.style.backgroundColor;this.style.backgroundColor='#FFFFCC';this.style.color='red'";
    e.Item.Attributes["onmouseout"] = "this.style.backgroundColor=this.name;this.style.color='4A3C8C'";
    } }