DataGrid中实现鼠标移入移出变色,且选择再变色,取消选择恢复原色,且原色隔行不一样的代码...

1、首先在DataGrid的定义中,实现隔行背景颜色不一样:  
  <asp:datagrid   id="DataGrid1"   ......   BackColor="LightGoldenrodYellow">  
      <AlternatingItemStyle   BackColor="#ececec"></AlternatingItemStyle>  
      .........  
  </asp:datagrid>  
   
  2、在DataGrid的ItemDataBound事件中,实现鼠标移入移出变色:  
  if(e.Item.ItemType!=ListItemType.Header)    
  {  
  e.Item.Attributes.Add(   "onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C1D2EE'");  
  e.Item.Attributes.Add(   "onmouseout","this.style.backgroundColor=currentcolor");  
  }  
   
  3、我这里选择某行,用的是html控件checkbox,它定义在DataGrid的模板列中:  
  <Columns>  
  <asp:TemplateColumn   HeaderText="<input   type='checkbox'   title='选择全部'   id='cbSelect'   οnclick='selectAll(this);'>">  
  <ItemTemplate>  
  <input   id="SelectedID"   runat="server"   type="checkbox"   οnclick="AddRemovevalues(this)"   value='<%#DataBinder.Eval(Container.DataItem,"myid")%>'>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  ........  
  </Columns>  
   
  4、点击checkbox调用JS函数AddRemovevalues(this):  
  function     AddRemovevalues(oChk)     {          
  var   ys;  
  if(oChk.checked)      
  {  
  //Form1.HdnSelectedvalues.value     +=     ","     +     oChk.value;   //这里原本是用来跨页选择的  
  currentcolor='Violet';  
  }  
  else      
  {  
  //Form1.HdnSelectedvalues.value     =     Form1.HdnSelectedvalues.value.replace(","     +     oChk.value,"");       //同上,不用可取消...  
  var   n=oChk.name.replace("DataGrid1:_ctl","").replace(":SelectedID","");  
  if   ((n   %   2)==0)  
  {currentcolor='#ececec';}  
  else  
  {currentcolor='LightGoldenrodYellow';}  
  }  
  }  

 

 

如果要实现鼠标在行内直接点击,就变色,不通过checkbox选择的话:  
   
  在e.Item.Attributes.Add(   "onmouseout","this.style.backgroundColor=currentcolor");上面,插入语句:  
  e.Item.Attributes.Add(   "onclick","AddRemovevalues()");  
   
  另外,注意这句:  
  oChk.name.replace("DataGrid1:_ctl","").replace(":SelectedID","")  
  其中DataGrid1为你的DataGrid的ID,SelectedID为checkbox的ID   !  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值