你是不是color搭配不好啊!我试了一下好象没什么问题啊!也可能我理解错你意思啊!

解决方案 »

  1.   

    选择以后给被选中行输出一段javascript脚本(用来改变本行的颜色)!引起这个的原因可能是“选择”是服务器端的事件,而不让行变成红色是客户端的代码,所以我看不出来!只要你在添加一段变颜色的代码到客户端就可以了!
      

  2.   

    在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);}
      

  3.   

    if(e.Item.ItemIndex==DataGrid.SelectedIndex)
      

  4.   

    “选中”我是直接用datagrid的<SelectedItemStyle>
    区别标志变红是下面这样
    private void DataGridResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    DataRowView RowView=(DataRowView)e.Item.DataItem;
    short Freezed=Convert.ToInt16(RowView["FreezeFlag"].ToString().Trim());
    if(Freezed==1)
    {
    e.Item.ForeColor=Color.Red;
    }
    }
    }
    }
      

  5.   

    这肯定不行了。实际上选中红的不能变色过程是这样的:当页面提交、回发时,不管你先前改变成声明颜色了,最后都会成红色。因为private void DataGridResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)事件是每次真正生成DataGrid行触发的事件。所以应该把你的代码换个地方。
      

  6.   

    private void DataGridResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    DataRowView RowView=(DataRowView)e.Item.DataItem;
    short Freezed=Convert.ToInt16(RowView["FreezeFlag"].ToString().Trim());
    if(Freezed==1)
    {
    e.Item.ForeColor=Color.Red;
    }
    if(e.Item.ItemIndex==DataGrid.SelectedIndex
    e.Item.ForeColor=Color.Blue; }
    }
    }
    你的结束的括号好像多了一个
      

  7.   

    private void DataGridResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    DataRowView RowView=(DataRowView)e.Item.DataItem;
    short Freezed=Convert.ToInt16(RowView["FreezeFlag"].ToString().Trim());
    if(Freezed==1)
    {
    e.Item.ForeColor=Color.Red;
    }
                               if(e.Item.ItemIndex==DataGrid.SelectedIndex
                e.Item.BackColor=System.Drawing.Color.FromArgb(0xFFFFFF);
    }
    }
    }
    你的扩好好想不匹配
      

  8.   

    private void DataGridResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    DataRowView RowView=(DataRowView)e.Item.DataItem;
    short Freezed=Convert.ToInt16(RowView["FreezeFlag"].ToString().Trim());
    if(Freezed==1)
    {
    e.Item.ForeColor=Color.Red;
    }
                               if(e.Item.ItemIndex==DataGrid.SelectedIndex)//我这里刚才少了个括号
                e.Item.BackColor=System.Drawing.Color.FromArgb(0xFFFFFF);
    }
    }
    }
    怎么发了这么多。。
      

  9.   

    to jjcccc() :   放在哪里好呢?我是希望页面一出来就显示的。请指教
      

  10.   

    就是按照我的那个写法,写在ItemDataBound的事件里面就可以啦