DataGrid中实现鼠标移入移出变色,且选择再变色,取消选择恢复原色,且原色隔行不一样的代码...
2008-11-05 17:47
453 查看
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' onclick='selectAll(this);'>">
<ItemTemplate>
<input id="SelectedID" runat="server" type="checkbox" onclick="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 !
<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' onclick='selectAll(this);'>">
<ItemTemplate>
<input id="SelectedID" runat="server" type="checkbox" onclick="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 !
相关文章推荐
- 实现DataGrid的某一行随着鼠标的移入移出而改变颜色
- 纯JS代码实现隔行变色鼠标移入高亮
- 纯JS代码实现隔行变色鼠标移入高亮
- 实现DataGrid的某一行随着鼠标的移入移出而改变颜色
- 实现DataGrid的某一行随着鼠标的移入移出而改变颜色
- 鼠标单击TR实现行变色效果,再次单击恢复原色
- jQuery实例--实现斑马线效果包括鼠标的移入移出变色
- 表格中鼠标移入时变色,移出又恢复
- jquery特效 table鼠标滑过变色的实现代码
- jQuery实现鼠标移入移出事件切换功能示例
- DataGrid 单击变色,鼠标经过变色 部分代码
- DataGrid实现自定义分页,鼠标移至变色,删除确认、可编辑,可删除
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
- 为EasyUI的dataGrid单元格增加鼠标移入移出事件
- 解决VMware vSphere Client与本机的鼠标无缝移出移入、剪贴板共享、共享文件夹等问题,实现虚拟机上虚拟硬件的驱动
- javascript 单选按钮 单击选中 双击取消选择实现代码
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
- AngularJS实现鼠标移入内容显示,鼠标移出内容隐藏