在Gridview中,有linkbutton,只要点击了linkbutton,此行就会变色?如何做?
2个回答
展开全部
服务器端的有二种方法
1:给LINKBUTTON加一个commandname如test
添加rowcommand事件
这样写(变回来的自己写吧)
if (e.CommandName == "test")
{
GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent));
drv.BackColor = System.Drawing.Color.FromName("red");
}
2直接添加事件处理函数
这样写(还是变回来的自己写吧)
LinkButton btn = (LinkButton)sender;
GridViewRow drv =(GridViewRow) btn.Parent.Parent;
drv.BackColor = System.Drawing.Color.FromName("red");
但是服务器的回发,页面闪烁的眼花
2客户端的实现:
如果你用的控件不会自动回发,那就很好实现
先给每一行自动加ID
if(e.row.... == 数据行)
e.attributes.add("id","row"+e.rowindex)
这样每一行的ID就是,ROW1,ROW2.....
然后给控件加上onclick的JAVASCRIPT函数
如
checkbox cb = (checkbox)............
cb.attributes.add("onclick","ChangeRowColor('row" + e.Row.RowIndex + "')")
changerow这个JAVASCRIPT函数很好写了,保留老颜色,换新颜色,设个BOOL值,判断,这样,点击CHECKBOX,选中就变色,不选中就掉色,多选支持多行颜色 .
但是用BUTTON这样的控件,就不好弄了,它们是自动回发的,一点击,服务器一个来回,变色的马上就消失了.
接下来网上查找"客户端回调"的知识,用registerclientscriptreference(...)这样的函数来注册客户端脚本(回调),MSDN中也有示例,不然的话,你就算给LINKBUTTON加上了,也没用.
1:给LINKBUTTON加一个commandname如test
添加rowcommand事件
这样写(变回来的自己写吧)
if (e.CommandName == "test")
{
GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent));
drv.BackColor = System.Drawing.Color.FromName("red");
}
2直接添加事件处理函数
这样写(还是变回来的自己写吧)
LinkButton btn = (LinkButton)sender;
GridViewRow drv =(GridViewRow) btn.Parent.Parent;
drv.BackColor = System.Drawing.Color.FromName("red");
但是服务器的回发,页面闪烁的眼花
2客户端的实现:
如果你用的控件不会自动回发,那就很好实现
先给每一行自动加ID
if(e.row.... == 数据行)
e.attributes.add("id","row"+e.rowindex)
这样每一行的ID就是,ROW1,ROW2.....
然后给控件加上onclick的JAVASCRIPT函数
如
checkbox cb = (checkbox)............
cb.attributes.add("onclick","ChangeRowColor('row" + e.Row.RowIndex + "')")
changerow这个JAVASCRIPT函数很好写了,保留老颜色,换新颜色,设个BOOL值,判断,这样,点击CHECKBOX,选中就变色,不选中就掉色,多选支持多行颜色 .
但是用BUTTON这样的控件,就不好弄了,它们是自动回发的,一点击,服务器一个来回,变色的马上就消失了.
接下来网上查找"客户端回调"的知识,用registerclientscriptreference(...)这样的函数来注册客户端脚本(回调),MSDN中也有示例,不然的话,你就算给LINKBUTTON加上了,也没用.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询