A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廖新 中级黑马   /  2013-3-7 21:33  /  1465 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

使用 GridView连接数据库, 数据太多的话,很容易看错。如何 使鼠标光标放在某个数据上,该数据所在的行就会变色?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

3 个回复

倒序浏览
1、首先在.aspx页面块中添加javascript
<script type="text/javascript">
var prevselitem=null;
function selectx(row)
{
      
if(prevselitem!=null)
      {
           prevselitem.style.backgroundColor
='#eeeeee';
      }
      row.style.backgroundColor
='PeachPuff';
      prevselitem
=row;      
      }
</script>
2、然后修改GridView,添加事件OnRowDataBound
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"  Width="100%" PageSize="55" OnRowDataBound="GridView1_RowDataBound"></asp:GridView>
3、最后在.aspx.cs页面中添加GridView1_RowDataBound
protected void GridView1_RowDataBound(object sender,GridViewRowEventArgs e)
{
         
if (e.Row.RowType == DataControlRowType.DataRow)
         {

                e.Row.Attributes.Add("onclick", e.Row.ClientID.ToString() + ".checked=true;selectx(this)");//点击行变色
         }
}





评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
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='#aaddaf'");
                //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
            }
        }

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
可以利用DataGridView控件的SelectionMode、ReadOnly和SelectionBackColor属性来实现鼠标光标放在某个数据上时,该数据所在的行显示不同的颜色。
例如:
        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=db_16;uid=sa;pwd=");
            SqlDataAdapter sda = new SqlDataAdapter("select * from tb_emp", conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);     //使用SqlDataAdapter对象的Fill方法填充DataSet
            dataGridView1.DataSource = ds.Tables[0];    //设置dataGridView控件的数据源
            //设置SelectionMode属性为FullRowSelect使控件能够整行选择
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;   
            //设置控件为只读
            dataGridView1.ReadOnly = true;
            //设置dataGridView1控件的DefaultCellStyle.SelectionBackColor属性,使其选择的行显示为黄绿色
            dataGridView1.DefaultCellStyle.SelectionBackColor = Color.YellowGreen;
        }


评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马