求DataGrid里,选某一行时,该行就变色的代码? DataGrid里,选某一行时,该行就变色的代码,能给代码出更好啊,急...先谢谢大家了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加一个onmouse事件,需要用到javascript public void DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e){ if(e.Item.ItemType!=ListItemType.Header) { e.Item.Cells[1].Attributes["onmouseover"]="this.bgColor='#e8f4ff'"; e.Item.Cells[1].Attributes["onmouseout"]="this.bgColor='#ffffff'"; }} //如果是数据项并且是交替项 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色 e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'"); //添加自定义属性,当鼠标移走时还原该行的背景色 e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); } 有个用javascript 实现的很容易 我忘了 这用这样写的,直接用JS就可以实现<SelectedItemStyle CssClass="dataGridSelectItem"></SelectedItemStyle>然后在CSS里写.dataGridSelectItem{ cursor: hand;//这个表示移上去变成手 background-color: lightgrey;} protected void MyDataGrid_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='LightGoldenrodYellow'") ; e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");}} //DataGrid_ItemDataBound事件 private void changeRowColor(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //如果是数据项并且是交替项 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色 e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'"); //添加自定义属性,当鼠标移走时还原该行的背景色 e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); } } public void Check_Changed(object sender,System.EventArgs e) { CheckBox chk=(CheckBox)sender; DataGridItem dgi; dgi=(DataGridItem)chk.Parent.Parent; if (chk.Checked) { dgi.BackColor = DataGrid1.SelectedItemStyle.BackColor; dgi.ForeColor = DataGrid1.SelectedItemStyle.ForeColor; } else { dgi.BackColor = DataGrid1.ItemStyle.BackColor; dgi.ForeColor = DataGrid1.ItemStyle.ForeColor; } } public void DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e){ if(e.Item.ItemType!=ListItemType.Header) { e.Item.Cells[1].Attributes["onmouseover"]="if(this.bgColor=='#e8f4ff'){this.bgColor='#ffffff';}else{this.bgColor='#e8f4ff';}"; }} 楼上的很多方法了,还是css的最简单 http://www.codeproject.com/useritems/IdOfControlsInDataGrid.asp 在DataGrid里添加一个选择列也可以,然后再DataGrid的属性生成器里面设置,同样能够起到反选的作用 DataGrid属性生成器——〉格式——〉项——〉选定项,在里面设定。或者在DataGrid_ItemDataBound事件里添加下面代码e.Item.Attributes.Add("onmouseover", "curr=this.style.backgroundColor;this.style.backgroundColor='#ffff99'"); e.Item.Attributes.Add("onMouseOut", "this.style.backgroundColor=curr"); if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色 e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'"); //添加自定义属性,当鼠标移走时还原该行的背景色 e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); } 也可以直接在客户端实现,至于怎么设置到dataGrid 不用问了吧:)<script language="JavaScript"><!--function doSelected(obj){ var otab = document.getElementById('tab1'); for(var i=0; i<otab.rows.length; i++){ otab.rows[i].style.backgroundColor = "#ffffff"; } obj.style.backgroundColor = "red";}//--></script><table align=center id="tab1" width="100%" cellspacing=0 cellpadding=0 border=0> <tr onclick="doSelected(this)"> <td height="20"></td> </tr> <tr onclick="doSelected(this)"> <td height="20"></td> </tr> <tr onclick="doSelected(this)"> <td height="20"></td> </tr> <tr onclick="doSelected(this)"> <td height="20"></td> </tr></table> 很谢谢上面的各位,,,但是我可能还有一点没说清楚,,就是要点击以后颜色才变,就是要onmousedown后才变色,还有就是能否在ItemDataBound事件里获得该行的SelectIndex,,因为我想在点击删除按钮后,被选中的行就被删除。上面回答的多少都会有分给,大家不要担心! VSS断开连接后 如何进行再次连接? autocomplete Jquery 在asp.net 使用问题 RadioButtonList的ListItem不支持汉字吗? 初学者,关于.net架构设计的问题?如何建立三层架构? 关于Attributes.Add()加事件的问题 关于 Duwamish7 中一点不明白的地方 数据库存储图片如何实现的? VS.NET中开发ASP。NET的问题 我这"发布网站"怎么变种了 框架内页面如何的跳转? 如何写一个DataGrid的自定义分页的自定义控件? Framework:SDK,可再发行组件包,ServerPack,是什么区别呢。
{
if(e.Item.ItemType!=ListItemType.Header)
{
e.Item.Cells[1].Attributes["onmouseover"]="this.bgColor='#e8f4ff'";
e.Item.Cells[1].Attributes["onmouseout"]="this.bgColor='#ffffff'";
}
}
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
//添加自定义属性,当鼠标移走时还原该行的背景色
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); }
我忘了
<SelectedItemStyle CssClass="dataGridSelectItem"></SelectedItemStyle>然后在CSS里写
.dataGridSelectItem
{
cursor: hand;//这个表示移上去变成手
background-color: lightgrey;
}
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='LightGoldenrodYellow'") ;
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
}
}
private void changeRowColor(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//如果是数据项并且是交替项
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
//添加自定义属性,当鼠标移走时还原该行的背景色
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); }
}
{
CheckBox chk=(CheckBox)sender;
DataGridItem dgi;
dgi=(DataGridItem)chk.Parent.Parent;
if (chk.Checked)
{
dgi.BackColor = DataGrid1.SelectedItemStyle.BackColor;
dgi.ForeColor = DataGrid1.SelectedItemStyle.ForeColor;
}
else
{
dgi.BackColor = DataGrid1.ItemStyle.BackColor;
dgi.ForeColor = DataGrid1.ItemStyle.ForeColor;
} }
{
if(e.Item.ItemType!=ListItemType.Header)
{
e.Item.Cells[1].Attributes["onmouseover"]="if(this.bgColor=='#e8f4ff'){this.bgColor='#ffffff';}else{this.bgColor='#e8f4ff';}"; }
}
在DataGrid_ItemDataBound事件里添加下面代码
e.Item.Attributes.Add("onmouseover", "curr=this.style.backgroundColor;this.style.backgroundColor='#ffff99'");
e.Item.Attributes.Add("onMouseOut", "this.style.backgroundColor=curr");
{
//添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
//添加自定义属性,当鼠标移走时还原该行的背景色
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); }
<!--
function doSelected(obj){
var otab = document.getElementById('tab1');
for(var i=0; i<otab.rows.length; i++){
otab.rows[i].style.backgroundColor = "#ffffff";
}
obj.style.backgroundColor = "red";
}
//-->
</script>
<table align=center id="tab1" width="100%" cellspacing=0 cellpadding=0 border=0>
<tr onclick="doSelected(this)">
<td height="20"></td>
</tr>
<tr onclick="doSelected(this)">
<td height="20"></td>
</tr>
<tr onclick="doSelected(this)">
<td height="20"></td>
</tr>
<tr onclick="doSelected(this)">
<td height="20"></td>
</tr>
</table>