怎么样在gridview中单击某行时高亮显示,只能单击另一行高亮处才能转到另一行````````````

解决方案 »

  1.   

    设置它的SelectedRowStyle就可以高亮显示选中行。
      

  2.   

    设置SelectionMode 属性为 FullRowSelect
      

  3.   

    我有一种用法是用脚本实现的。移动到一行上显示一种颜色,移开则还原,单击一行后显示另一种颜色,双击则打开另一个页面。在这个过程中还可以执行相关的脚本,自己根据需要灵活处理即可。
    首先是脚本中添加如下代码:        var SelectedItem=null;
            function SelectRow(row) 
            {
                if(SelectedItem!=null)
                {
                    SelectedItem.style.backgroundColor="#FFFFFF";
                    SelectedItem.style.color="#000000";
                }
                row.style.backgroundColor='#5A7EBF'; 
                row.style.color="#ffffff";
                SelectedItem=row;
            }
            var SelectID=null;
            function SaveID(Value)
            {
               SelectID=value;
            }
            function ShowNewPage()
            {
               window.open("mypage.aspx?id=" + SelectID);//此处根据需要打开不同的页面
            }然后在C#代码中对GridView控件的RowDataBoudn事件添加如下代码    protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)//只有数据行需要设置
            {
               e.Row.Attributes["style"] = "Cursor:hand";//设置鼠标样式
                //当鼠标停留时更改背景色
                e.Row.Attributes.Add("onmouseover", "if(this!=SelectedItem){this.style.backgroundColor='#EFEFEF'}");
                //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onmouseout", "if(this!=SelectedItem){this.style.backgroundColor='#FFFFFF'}");            //将ID绑定到模板列的Label控件lblID中,设置lblID的style="display:none;"将其隐藏起来
                  //对于其他可能用脚本取值但不想让用户看到的控件也可以这样设置
                Label lblID = (Label)e.Row.FindControl("lblID");
                string strID = lblID.Text;
                //如果打开新页面需要多个参数,则修改脚本中的SaveID,这里也要相应修改
                e.Row.Attributes.Add("onclick", string.Format("SelectRow(this);SaveID('{0}');", strID));
                //也可以把Select按钮用设置style的方法隐藏起来,在双击行时用脚本执行按钮的click方法,如此稍加变通用法就很多了
                e.Row.Attributes.Add("ondblclick", "ShowNewPage();");
            }
        }