如何选中datagrid的某一行,改变选中行的颜色
我记得是加在SelectedIndexChanged事件里,但我忘了怎么弄的.
还有就是EditCommand事件我已经用了.谢谢

解决方案 »

  1.   

    在DataGrid_ItemDataBound事件中写   
      if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item||e.Item.ItemType==System.Web.UI.WebControls.ListItemType.AlternatingItem)   
      {   
      if(e.Item.ItemIndex==DataGrid.SelectedIndex)   
      e.Item.BackColor=System.Drawing.Color.FromArgb(0xFFFFFF);   
        
      }   
      

  2.   

    e.Item.BackColor=System.Drawing.Color.FromArgb(0xFFFFFF);
      

  3.   

    也可以用js来时间,因为datagrid 展现成html 是以table的形式的,对table的选择变色的js函数很多。楼主可以找一下
      

  4.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ListItemType itemType = e.Item.ItemType;
    //e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#e6e6fa';cursor='hand';" ;
    if (itemType == ListItemType.Item )
    {
    e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#0099CC';cursor='hand';" ;
    e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#DFF0FF';";
    }
    else if( itemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#0099CC';cursor='hand';" ;
    e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#F2F8FF';";
    }

    }
      

  5.   

    我的问题是这样的,在Datagrid里我添加了一个按钮列,命令名称为Edit.为什么设置成Edit呢,因为我可以在EditCommand事件下可以获取当前行的值,如下代码
    id=e.Item.Cells[1].Text.Trim().ToString();
    secBox.Text=e.Item.Cells[1].Text.Trim().ToString();
    NameBox.Text=e.Item.Cells[2].Text.Trim().ToString();
    time_lengthBox.Text=e.Item.Cells[5].Text.Trim().ToString();
    MemoBox.Text=e.Item.Cells[3].Text.Trim().ToString();
    但是我想实现选中某一行后能使该行变个颜色,但是要实现选择某一行改变颜色,必须在DataGrid里添加按钮列,命令名称为Select的才行,我不可能在datagrid里添加2个按钮列,可不可以添加一个按钮列来实现我上面的要求 1,改变选中行的颜色.2,可以象id=e.Item.Cells[1].Text.Trim().ToString();来获取datagrid当前行的值