日期:2014-05-20  浏览次数:20524 次

100分问:GridView中单击某行变色后如何让其变回来?
要求是用户选择某行后,单击“删除”按钮进行删除。
为了界面的统一,删除按钮不是gridview提供的按钮,是页面上放一个普通的button,一次只允许用户删除一行。
现在的做法是:
(1)在gridview的   GridView1_RowDataBound()事件中,设置单击行后,此行变色。
          e.Row.Attributes.Add( "onclick ",   "this.runtimeStyle.cssText= 'background-color:#e6c5fc ' ");
(2)现在的情况是当单击行时,行确实变色了,但是再单击一行,这行也变色了。我现在希望的是当单击第二行时,第一行的颜色恢复成原先的颜色。也就是一次只能选择一行进行删除。
请问有没有什么好方法可以在单击第二行后,第一行的颜色恢复成原先的设置??最好不要去遍历每一行。。。。效率问题。




------解决方案--------------------
e.Row.Attributes.Add( "onclick ", "if(window.oldtr!=null){window.oldtr.runtimeStyle.cssText= ' ';}this.runtimeStyle.cssText= 'background-color:#e6c5fc ';window.oldtr=this ");
------解决方案--------------------
给你个思路
就是datagrid中的行id
你点行变色后 取到 并 保存到一个隐藏字段中
再点另外行时 判断这个隐藏字段有没有值 有值就将先前的行的style改成原来的
再进行点击行的变色 并把新的行ID保存到这个隐藏字段中