我点DataGrid 的cell时,要提示文字跟图。如何实现!
谢谢

解决方案 »

  1.   

    加入文字:在ItemDataBound事件中:
    {
        e.Item.Cell[0].TooTip = "显示自定义文字";
    }
      

  2.   

    如果要提示图的话,你可以用一个窗体专门来显示图。在鼠标的Click事件中,如果你选中了一个cell,就把cell的值传给窗体,再把窗体Show出来,可以把要show的窗体的上面的按钮去掉,show的窗体的位置的左上角为鼠标指针的位置,这样会比较逼真一些。哈。
      

  3.   

    用一个绝对定位的,没有边框的iframe
      

  4.   

    谢谢!
    有没有代码,关于tip显示图的呢?
      

  5.   

    up
    bt下载的就有tip图呀!
    不知道是怎么实现的
      

  6.   

    Panel 怎么tip到DataGrid中的cell中去!
    谢谢
    1
      

  7.   

    up 
    顺便也把WinForm的做出来吧~ 正好参考一下
      

  8.   

    楼主是没有讲是WEB还是WINFORM。
    不过可以通过picture控件来加载图片,然后再向容器中添加picture控件就可以了。当然也可以重写datagrid的事件,只是麻烦些。
      

  9.   

    做的是web呀!我有问过人!
    说要用层来实现!
    那要怎么实现呢?
    up
    谢谢
      

  10.   

    你可以加个DIV然后把图放到里面而在DATAGRID上,加入MOUSEUP事件(JAVASCRIP的)然后将GRID的图片路径传给DIV,DIV显示但好像服务器要回刷一回才管用~~只是想想~~
      

  11.   

    我上边打错了,
    是在DATABOUND事件中加入了e.Item.Attributes.Add("onMouseover", "this.style.backgroundColor='" + this.PagerStyle.BackColor.Name + "'");
    e.Item.Attributes.Add("onMouseout", "this.style.backgroundColor=''");因为我这做的一个DATAGRID就是当SHU标放上的时候,改完当前行的背景以及边框颜色
      

  12.   

    <HTML>
    <HEAD>
    <title>WebForm3</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <script>  
    function  show(o){  
    var  m=document.getElementById("m")  
    m.style.pixelLeft=getL(o)  
    m.style.pixelTop=getT(o)+o.offsetHeight  
    m.style.visibility=''  
    }  
     
    function  hide(){  
    document.getElementById("m").style.visibility='hidden'  
    }  
     
    function  getL(e){  
    var  l=e.offsetLeft;  
    while(e=e.offsetParent){  
    l+=e.offsetLeft;  
    }  
    return  l  
    }  
     
    function  getT(e){  
    var  t=e.offsetTop;  
    while(e=e.offsetParent){  
    t+=e.offsetTop;  
    }  
    return  t  
    }  
    </script>
    </HEAD>
    <body ms_positioning="GridLayout">
    <form id="products_form" runat="server">
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 304px; POSITION: absolute; TOP: 128px" runat="server" AutoGenerateColumns="False" Width="192px" Height="281px">
    <Columns>
    <asp:TemplateColumn HeaderText="username">
    <ItemTemplate>
    <asp:Label ID="i" onmouseover="show(this)" onmouseout="hide()" Runat=server><%# DataBinder.Eval(Container.DataItem,"username") %></asp:Label>
    <div id="m" style="BORDER-RIGHT:black 1px solid;PADDING-RIGHT:20px;BORDER-TOP:black 1px solid;PADDING-LEFT:20px;Z-INDEX:100;VISIBILITY:hidden;PADDING-BOTTOM:20px;BORDER-LEFT:black 1px solid;WIDTH:80px;PADDING-TOP:20px;BORDER-BOTTOM:black 1px solid;POSITION:absolute" onmouseover="show(i)" onmouseout="hide()">
    <img src="meng.jpg"></img>
    </div>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    </form></body>
    </HTML>----------------------------------
    如上代码,其中做法是,加一个模板列来显示数据库某字段,然后加div来显示图片,图片我目前是写死的,你可以根据记录id不同显示不同的图片,可以修改为<img src=<%# DataBinder.Eval(Container.DataItem,"image") %>></img>这只是个大概样子,具体还要根据你的实际需要做调整