DataGrid里,选某一行时,该行就变色的代码,能给代码出更好啊,急...
先谢谢大家了

解决方案 »

  1.   

    加一个onmouse事件,需要用到javascript
      

  2.   

    public void DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e)
    {
      if(e.Item.ItemType!=ListItemType.Header)
       {
        e.Item.Cells[1].Attributes["onmouseover"]="this.bgColor='#e8f4ff'";
        e.Item.Cells[1].Attributes["onmouseout"]="this.bgColor='#ffffff'";
        }
    }
      

  3.   

    //如果是数据项并且是交替项
    if(e.Item.ItemType == ListItemType.Item  || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
    //添加自定义属性,当鼠标移走时还原该行的背景色
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); }
      

  4.   

    有个用javascript 实现的很容易
       我忘了
      

  5.   

    这用这样写的,直接用JS就可以实现
    <SelectedItemStyle CssClass="dataGridSelectItem"></SelectedItemStyle>然后在CSS里写
    .dataGridSelectItem
    {
    cursor: hand;//这个表示移上去变成手
    background-color: lightgrey;
    }
      

  6.   

    protected void MyDataGrid_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='LightGoldenrodYellow'") ; 
    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
    }
    }
      

  7.   

    //DataGrid_ItemDataBound事件
    private void changeRowColor(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //如果是数据项并且是交替项
    if(e.Item.ItemType == ListItemType.Item  || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
    //添加自定义属性,当鼠标移走时还原该行的背景色
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); } 
    }
      

  8.   

    public void Check_Changed(object sender,System.EventArgs e)
    {
    CheckBox chk=(CheckBox)sender;
    DataGridItem dgi;
    dgi=(DataGridItem)chk.Parent.Parent;
    if (chk.Checked)
    {
    dgi.BackColor = DataGrid1.SelectedItemStyle.BackColor;
    dgi.ForeColor = DataGrid1.SelectedItemStyle.ForeColor;
    }
    else
    {
    dgi.BackColor = DataGrid1.ItemStyle.BackColor;
    dgi.ForeColor = DataGrid1.ItemStyle.ForeColor;
    } }
      

  9.   

    public void DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e)
    {
      if(e.Item.ItemType!=ListItemType.Header)
       {
        e.Item.Cells[1].Attributes["onmouseover"]="if(this.bgColor=='#e8f4ff'){this.bgColor='#ffffff';}else{this.bgColor='#e8f4ff';}";    }
    }
      

  10.   

    楼上的很多方法了,还是css的最简单
      

  11.   

    http://www.codeproject.com/useritems/IdOfControlsInDataGrid.asp
      

  12.   

    在DataGrid里添加一个选择列也可以,然后再DataGrid的属性生成器里面设置,同样能够起到反选的作用
      

  13.   

    DataGrid属性生成器——〉格式——〉项——〉选定项,在里面设定。或者
    在DataGrid_ItemDataBound事件里添加下面代码
    e.Item.Attributes.Add("onmouseover", "curr=this.style.backgroundColor;this.style.backgroundColor='#ffff99'");
    e.Item.Attributes.Add("onMouseOut", "this.style.backgroundColor=curr");
      

  14.   

    if(e.Item.ItemType == ListItemType.Item  || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
    //添加自定义属性,当鼠标移走时还原该行的背景色
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); }
      

  15.   

    也可以直接在客户端实现,至于怎么设置到dataGrid 不用问了吧:)<script language="JavaScript">
    <!--
    function doSelected(obj){
      var otab = document.getElementById('tab1');
      for(var i=0; i<otab.rows.length; i++){
        otab.rows[i].style.backgroundColor = "#ffffff";
      }
      obj.style.backgroundColor = "red";
    }
    //-->
    </script>
    <table align=center id="tab1" width="100%" cellspacing=0 cellpadding=0 border=0>
      <tr onclick="doSelected(this)">
        <td height="20"></td>
      </tr>
      <tr onclick="doSelected(this)">
        <td height="20"></td>
      </tr>
      <tr onclick="doSelected(this)">
        <td height="20"></td>
      </tr>
      <tr onclick="doSelected(this)">
        <td height="20"></td>
      </tr>
    </table>
      

  16.   

    很谢谢上面的各位,,,但是我可能还有一点没说清楚,,就是要点击以后颜色才变,就是要onmousedown后才变色,还有就是能否在ItemDataBound事件里获得该行的SelectIndex,,因为我想在点击删除按钮后,被选中的行就被删除。上面回答的多少都会有分给,大家不要担心!