【求助!!!!!! 如何实现GridViewRow中,实现单击背景色发生改变,同时调用后台带String参数代码】

tlzjff 2009-01-17 03:47:53
RP
项目中有个功能要想实现的效果是这样的,当GridView和数据绑定后,单击某一行时,要让此行的背景色发生改变(不能添加任何查询按钮之类的东西,只是纯绑定),同时让页面上的另外的一个Label.Text的值变为被点击的GridView行中的Row.Cells[1]的数据,如果再点击GridView中的其他行,先前被点击的那行的背景色颜色恢复,Label.Text的值再次与被选中的数据同步。

小弟觉得这应该要牵扯到JS,而我的JS实在太弱了,已经好几天了,都没能实现这个效果,望那位高人挺身而出,帮小弟解决一下这个问题啊~ 能否直接就写一个简单的DEMO啊? (最好是C#版的 Orz)

PS:祝各位过年快乐~
...全文
227 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlzjff 2009-01-19
  • 打赏
  • 举报
回复
各位大大,背景色的效果已经实现了,现在是要同步Label了里的值了
kerry030401 2009-01-19
  • 打赏
  • 举报
回复

protected void SmartGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i;
//执行循环,保证每条数据都可以更新
for (i = -1; i < SmartGridView1.Rows.Count; i++)
{
//首先判断是否是数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
//当鼠标停留时更改背景色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
//当鼠标移开时还原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
}

}

这个是鼠标移动到上面时 换颜色 给你些参考!
love41349279 2009-01-19
  • 打赏
  • 举报
回复
这个好象不会用到JS吧
tlzjff 2009-01-19
  • 打赏
  • 举报
回复
谢谢楼上各位,现在用HDNGO的方法已经实现了行点击的效果,现在就剩下把页面上面另外的Label控件中的值,变成我选中行里的某列的值了- -,以上...
CutBug 2009-01-19
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
var oldRow = null;
window.onload=function()
{
var tblId = "<%=GridView1.ClientID %>";
var tbl = $e(tblId);
if(tbl!=null)
{
for(var i=1;i<tbl.rows.length;i++)
{
tbl.rows[i].onclick=new Function("clickRow(this)")
}
}
}

function clickRow(row)
{
var colorHighlt = "red";
//alert(row.rowIndex);
if(oldRow!=row)
{
if(oldRow!=null)
{
oldRow.style.backgroundColor = "";
}
row.style.backgroundColor = colorHighlt;
}else
{
row.style.backgroundColor=(row.style.backgroundColor==""?colorHighlt:"");

}

var lblId = "<%=Lbl1.ClientID %>";
var lbl = $e(lblId);
lbl.innerText = row.cells(0).innerText;//Label更新为当前行第一列的值


oldRow = row;
}

function $e(id)
{
return document.getElementById(id);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:Label ID="Lbl1" runat="server" Text="初始值"></asp:Label>
<asp:GridView runat="server" ID="GridView1" Width="50%">

</asp:GridView>

</div>
</form>
</body>
</html>
xwk789xwk 2009-01-17
  • 打赏
  • 举报
回复
学习一下
HDNGO 2009-01-17
  • 打赏
  • 举报
回复
RowDataBound里加入
e.Row.Attributes.Add("onclick", "selectx(this)");


JS
<script language="javascript" type="text/javascript" >
var prev=null;
function selectx(row) /**//*改变选中行的颜色还原为选中行的颜色*/
{
if(prev!=null)
{
prev.style.backgroundColor='#E4F7D8';
}
row.style.backgroundColor='#8EC26F';
prev=row;

}
</script>
zuoming120 2009-01-17
  • 打赏
  • 举报
回复
以上都对。
zuoming120 2009-01-17
  • 打赏
  • 举报
回复
以上都对。
dd__dd 2009-01-17
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "bcl=this.style.backgroundColor;this.style.backgroundColor='#00ffee'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=bcl;");
e.Row.Attributes.Add("onclick", "js方法");
}
}
kingya2008 2009-01-17
  • 打赏
  • 举报
回复
//单击GridView行变色
function SetBGC()
{
var c;
var d;
var obj = document.getElementById("ctl00_ContentPlaceHolder1_GridView1").getElementsByTagName("tr");
for(var i=1; i<obj.length; i++)
{
obj[i].onmouseover=function()
{
c=this.style.backgroundColor;
d=this.style.backgroundColor;
this.style.backgroundColor='#fffce0'; //鼠标移上
}
obj[i].onmouseout=function()
{
this.style.backgroundColor = c == "#fffddf" ? "#fffddf" : "#ffffff"; //鼠标离开
}
obj[i].onclick=function()
{
d = d == "#fffddf" ? "#ffffff" : "#fffddf"; //调整将当前行背景色
this.style.backgroundColor = d;
c=this.style.backgroundColor;
}
}
}

if(window.attachEvent)
window.attachEvent("onload",SetBGC);
walkghost 2009-01-17
  • 打赏
  • 举报
回复
希望这篇文章能帮助你:

http://hi.baidu.com/yangwenlongwo/blog/item/68f2e1164988ed4d20a4e9d8.html
walkghost 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 tlzjff 的帖子:]
RP
项目中有个功能要想实现的效果是这样的,当GridView和数据绑定后,单击某一行时,要让此行的背景色发生改变(不能添加任何查询按钮之类的东西,只是纯绑定),同时让页面上的另外的一个Label.Text的值变为被点击的GridView行中的Row.Cells[1]的数据,如果再点击GridView中的其他行,先前被点击的那行的背景色颜色恢复,Label.Text的值再次与被选中的数据同步。

小弟觉得这应该要牵扯到JS,而我的JS实在太弱了,已经好几天…
[/Quote]
RP==人品?

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧