2009-02-10 40 views
3

我很新的整个JavaScript的东西。我有一个gridview,我希望用户能够悬停在整个行(相信它的整个TR),并能够点击任何地方,那将能够选择该行。我需要服务器端代码才能知道哪一行被点击。gridview asp.net mouse over TR查找哪一行被点击的服务器端代码

我真的不知道从哪里开始的这一点,并会喜欢上一些指导:

1)最好的方式来增加表明用户悬停在某行的能力(改变背景颜色或东西)

2)如何连接点击该行任意位置的能力并激活服务器端代码,以确定哪一行被点击。

读这篇文章http://www.dotnetcurry.com/ShowArticle.aspx?ID=109关于从客户端解雇服务器端代码,但不知道如何找出它会来自哪一行。

谢谢

乔恩·霍金斯

回答

3

这应该做的伎俩,只是使gridview的选择

protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      e.Row.Attributes["onmouseover"] = "this.style.background = '#CCCCCC';"; 
      e.Row.Attributes["onmouseout"] = "this.style.background = '#FFFFFF';"; 

      e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.Gridview1, "Select$" + e.Row.RowIndex); 
     } 
    } 

的点击将由GridView的单击事件被检测到服务器端。

+0

工作过! thx – Jon 2009-02-10 09:54:26

0

我总是与中继器控制工作,为悬停效果上的转发器使用jQuery

这正好与标签之间

   $(document).ready(function() { 
        $(".tr-base").mouseover(function() { 
         $(this).toggleClass("trHover"); 
        }).mouseout(function() { 
         $(this).removeClass("trHover"); 
        }); 
       }); 

,这是CSS类。

.trHover{background-color: #D5E5ED;} 

如果你不会在服务器端做任何事情,当点击该行时,你可以再次使用jQuery来选择效果。