如题:在ASP.NET中的DataGrid中,如何在鼠标经过一行时,点击这行后,选择这一行呀?

解决方案 »

  1.   

    JS文件:GridControl.js
    =============================/*------------ DataGrid鼠标事件处理 ------------
    功能:用于数据梆定后鼠标事件
    参数说明:
    obj:对像this
    fontColor:字体颜色
    backColor:背景颜色
    ----------------------------------------------*/var objState//------------鼠标经过时-----------
    function OnFoucsMouseOver( obj,fontColor,backColor )
    {
     if ( obj.rowIndex > 0 )
     {
      obj.style.color = fontColor;
      obj.style.backgroundColor = backColor;
     }
    }//-----------鼠标离开时-----------
    function OnFoucsMouseOut( obj,fontColor,backColor )
    {
     if ( obj.rowIndex > 0 )
     {
      if ( obj != objState )
      {
       obj.style.color = fontColor;
       obj.style.backgroundColor = backColor;
      }
     }
    }//-----------鼠标单击时-----------
    function OnFoucsClick( obj,fontColor,backColor )
    {
     if ( obj.rowIndex > 0 )
     {
      if ( objState != null )
      {
       objState.style.color = "";
       objState.style.backgroundColor = "";
      }
      obj.style.color = fontColor;
      obj.style.backgroundColor = backColor;
      
      objState = obj;
     }
    }//-----------鼠标双击时-----------
    function OnFoucsDbClick( obj,fontColor,backColor,openUrl )
    {
     //参数openUrl为要开的新窗口的地址
     if ( obj.rowIndex > 0 )
     {
      if ( objState != null )
      {
       objState.style.color = "";
       objState.style.backgroundColor = "";
      }
      obj.style.color = fontColor;
      obj.style.backgroundColor = backColor;
      
      objState = obj;
      
      window.open( openUrl );
     }
    }==========================================后台数据梆定例子:==========================================  private void dgList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       //
       if ( e.Item.ItemIndex != -1 )
       {
        e.Item.Attributes.Add( "onMouseOver","OnFoucsMouseOver(this,'#FFFFFF','#000000');" );
        e.Item.Attributes.Add( "onMouseOut","OnFoucsMouseOut(this,'#000000','#FFFFFF');" );
        e.Item.Attributes.Add( "onClick","OnFoucsClick( this,'#FFFFFF','#000000' );" );
        e.Item.Attributes.Add( "onDblClick","OnFoucsDbClick( this,'#FFFFFF','#000000','about:bank' );" );
       }
      }==========================================前台.aspx页面调用JS文件:<script language="javascript" src="GridControl.js"></script>
      

  2.   

    JS文件源码:GridColorControl.js
    =====================================/*-----------------调用说明-----------------
    说明:可用于架设页面事件。
    入口函数:OnFocusSet(....)
    如:OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )实用调用例子:
    鼠标事件:
    onMouseOver='OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )'
    单击事件:
    onClick='OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )'参数说明:
    参数一[color]:未选中时的字体颜色
    参数二[backColor]:未选中时的背景颜色
    参数三[selectColor]:选中时的字体颜色
    参数四[selectBackColor]:选中时的背景颜色
    ------------------------------------------*/
    var Rows=new Array();
    var ShiftStartRow="";
    var setColor,setBackColor,setSelectColor,setSelectBackColor;/*---------主函数入口----------*/
    function OnFocusSet( color,backColor,selectColor,selectBackColor )
    {
     setColor = color;
     setBackColor = backColor;
     setSelectColor = selectColor;
     setSelectBackColor = selectBackColor;
     Set();
    }//-----------操作----------------
    function Set()
    {
     iRow=window.event.srcElement;
     do
     {
      iRow=iRow.parentElement;
     }
     while(iRow.tagName!='TR') 
     if(event.ctrlKey)
     {
      var j=-1;
      for(i=0;i<Rows.length;i++)
      {
       if(iRow==Rows[i])
       {
        j=i;break;
       }
      }
      if(j!=-1)
      {
       for(i=j;i<Rows.length-1;i++)
       { 
        Rows[i]=Rows[i+1];
       }
       Rows.length=Rows.length-1;
      }
      else
      {
       Rows[Rows.length]=iRow;
      } 
       ShiftStartRow=iRow;
      }
      else if(event.shiftKey)
      {
       if(ShiftStartRow!="")
       {
        var StartIndex=ShiftStartRow.rowIndex;
        var EndIndex=iRow.rowIndex; 
        var oTable=iRow.parentElement;Rows.length=0;
        if(StartIndex < EndIndex)
        {
         for(var i=StartIndex;i<EndIndex+1;i++)
         {
          Rows.push(oTable.rows[i]);
         }
        }
        if(StartIndex >= EndIndex)
        { 
         for(var i=EndIndex;i<StartIndex+1;i++)
         {
          Rows.push(oTable.rows[i]);
         }
        }
       }
      }
      else
      {
       Rows.length=1;
       Rows[0]=iRow;
       ShiftStartRow=iRow;
      } 
      changeColor(iRow);
    } //------------颜色改变------------
    function changeColor(obj)
    {
     for(var i=1;i<obj.parentElement.rows.length;i++)
     {
      obj.parentElement.rows(i).style.backgroundColor=setBackColor;
      obj.parentElement.rows(i).style.color=setColor;
     } 
     var keyValue="";
     for(i=0;i<Rows.length;i++)
     {
      Rows[i].style.backgroundColor=setSelectBackColor; 
      keyValue += Rows[i].id+",";
      Rows[i].style.color=setSelectColor;
     }
    }===========================================后台DataGrid梆定方法:===========================================private void dgList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       if( e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.SelectedItem)
       {
        e.Item.Attributes.Add("onClick","OnFocusSet( '#000000','#FFFFFF','#FFFFFF','#000000' );");
       }
      }===========================================前台.aspx文件调用JS即可: <script language="javascript" src="GridColorControl.js"></script> 
      

  3.   

    各种样式的光标
    auto :标准光标
    default :标准箭头
    hand :手形光标
    wait :等待光标
    text :I形光标
    vertical-text :水平I形光标
    no-drop :不可拖动光标
    not-allowed :无效光标
    help :?帮助光标
    all-scroll :三角方向标
    move :移动标
    crosshair :十字标
    e-resize
    n-resize
    nw-resize
    w-resize
    s-resize
    se-resize
    sw-resizehand:是大家所熟悉的手型。
    crosshair:是十字型,就是小乌龟首页所用的样式。
    text:是平时鼠标移动到文本上的样式。
    wait:是等待的效果。
    default:是默认的那种效果。
    help:是带问号的鼠标样式。
    e-resize:是向右的箭头。
    ne-resize:是向右上方的箭头。
    n-resize:是向上的箭头。
    nw-resize:是向左上方的箭头。
    w-resize:是向左的箭关。
    sw-resize:是向左下的箭头。
    s-resize:是向下的箭头。
    se-resize:是向右下方的箭头。
    auto:是系统自动的效果 
    hand:是大家所熟悉的手型。
    crosshair:是十字型,就是小乌龟首页所用的样式。
    text:是平时鼠标移动到文本上的样式。
    wait:是等待的效果。
    default:是默认的那种效果。
    help:是带问号的鼠标样式。
    e-resize:是向右的箭头。
    ne-resize:是向右上方的箭头。
    n-resize:是向上的箭头。
    nw-resize:是向左上方的箭头。
    w-resize:是向左的箭关。
    sw-resize:是向左下的箭头。
    s-resize:是向下的箭头。
    se-resize:是向右下方的箭头。
    auto:是系统自动的效果 
      

  4.   

    楼上的太长了..给你个简单的..先是CSS样式:
    <style type="text/css">
    <!--
    .d {
    border: 1px solid #0000FF;
    }
    -->
    </style>然后在你的div中或者DataList的Item中加入
    <div onclick="this.className='d'" onmousemove="this.style.cursor='hand'" onmouseout="this.style.cursor='default'">ddddddddddddddddd</div>
      

  5.   

    抱歉,有一点没有说清楚,我所说的选定,是DataGrid中有增加“选择“按钮的情况下,当在某一行上点击时,要激活"选择"按钮的事件,比如更改“选择”按钮的"选择"和"没有选择"时的图片等功能.
      

  6.   

    往下面中加一句应该就可以了吧
    private void dgList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       if( e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.SelectedItem)
       {
          LinkButton lb=(LinkButton)e.item[//选择所在列号].findcontrol["选择的id"]
          lb.Attributes.Add("onClick","OnFocusSet( '#000000','#FFFFFF','#FFFFFF','#000000' );");
     
       //再往onclick事件可增加更换图片代码就可以
       }
      }
      

  7.   

    我是要激活"Select"选择按钮的Click事件