一个数据表上显示多条记录。当鼠标移动到该条记录时,就弹出一个层显示该条记录的详细信息。效果就像那个http://bt2.btchina.net/上的效果一样,鼠标放在一条记录上就弹出一个层一样的东西显示具体信息。请问如何实现这个功能,最好能提供vb的源码,谢谢。

解决方案 »

  1.   

    http://singlepine.cnblogs.com/articles/309354.html
      

  2.   

    只要设置链接的ToolTip属性就行了
      

  3.   

    可以用tooptip来绑定多列,可能格式不好调。
      

  4.   

    private void DataGridMain_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {

    if(e.Item.ItemType == ListItemType.AlternatingItem|| e.Item.ItemType == ListItemType.Item)
    {
    e.Item.Attributes.Add("onmouseover","this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#C8F7FF';"); e.Item.Attributes.Add("onclick","Show('"+ Checkstr.CheckStr(Server.HtmlDecode(DailyCartDateSet.Tables["GetAllDailyCart"].Rows[e.Item.ItemIndex]["Event"].ToString()))+"','"+ Checkstr.CheckStr(Server.HtmlDecode(DailyCartDateSet.Tables["GetAllDailyCart"].Rows[e.Item.ItemIndex]["EventContent"].ToString()))+"','"+ Checkstr.CheckStr(Server.HtmlDecode(DailyCartDateSet.Tables["GetAllDailyCart"].Rows[e.Item.ItemIndex]["EventSolve"].ToString()))+"','"+Checkstr.CheckStr(Server.HtmlDecode(DailyCartDateSet.Tables["GetAllDailyCart"].Rows[e.Item.ItemIndex]["Pl"].ToString()))+"')");
    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=this.oldcolor;Hide();");

    }
    大概形式是这样 绑定datagrid的cell的mousemove的属性
      

  5.   

    至少,使用title(tooltip)是不行的,因为其用户体验设计的目的根本不同。对于tooltip,它会在鼠标悬停几秒钟之后才显,并且很快(几秒钟)就会自动消失,为了看清楚比较多的文字,必须微微移动鼠标,非常荒唐。而实际上的需求是,需要立即显示详细信息,并且只要不显示其它的提示并且不点击其它地方,提示就一直保持显示。并且,也希望这个提示是html而不是文本。一种方式是写一个浮动div,但是这很麻烦,关键是你要在鼠标靠窗体左边、右边、上边、下边的时候自动避开窗体边框,并且不能被下拉框等覆盖。如果是在ie上,最好的方式是使用WinPopup窗口。有关ie的html对象,可以查询platform sdk相关资料。
      

  6.   

    请参考:DataGrid的ToolTip问题
    http://community.csdn.net/Expert/topic/4151/4151913.xml?temp=2.895534E-03