DataGrid鼠标事件处理

完成功能是DataGrid的页面选中事件、鼠标事件、双击事件改变TR的色彩。代码很简单,只是一点JS操作。

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" type="text/javascript"></script> <script language="javascript" src="GridControl.js"></script>

 

当使用分页功能的时候,点下页就触发PageIndexChanged事件,所以要在这下面加点东东!!

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   this.DataGrid1.CurrentPageIndex=e.NewPageIndex;//判断当前页码是多少?并传入下页的页码
   this.binder();//这个是做了一个绑定方法,这里只是调用绑定
  }

  private void LinkButton1_Click(object sender, System.EventArgs e)
  {
  int i=Convert.ToInt32(this.TextBox1.Text);//这个列是从TextBox1传入的
   this.DataGrid1.Columns[i].Visible=false;
   this.binder();
  }
  private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {//注意赋值时的大小写
   if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)//选择只是内容项(出去头脚)加脚本
   {
   e.Item.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");//鼠标悬停,读取背景色,再把新色换成#6699ff
   e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=c;");//鼠标离开,把背景给换回去
   }
  }

如果你不是很无聊的话,最好把datagrid的高和宽取消了,只是单独给里面的项设置高度或者宽度,否则会出现一些地球人都不想看见的问题!

 

此代码实现了以下功能:

  1.当鼠标在DataGrid上移动时行变化背景色;

  2.单击DataGrid行弹出提示窗体;

  3.当鼠标放在DataGrid上时鼠标样式变为"hand"样式。

  在DataGrid控件的项绑定事件中写入以下代码:

  private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
   {
    e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Bisque'");
    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='White'");
    e.Item.Style["cursor"] = "hand";
    e.Item.Attributes.Add("onclick", "alert(/"This row's Product Name: " + e.Item.Cells[0].Text + "/");");
   }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值