如何把鼠标放在Datagrid的表列头的某个字段,就显示出一个窗口?
类似于在选择城市一样,把鼠标移动到“所有城市”,就会展开所有的城市内容出来,供选择,鼠标移除“所有城市”,就隐藏。
现在是要在Datagrid的表列头的某个字段里实现,不知如何做到?

解决方案 »

  1.   

    说个很垃圾的方法。
    先隐藏一个listbox
    在表头位置盖上一个label ,然后在“mouseenter”事件里把listbox显示出来,
    你要是想选择,也可以,在listbox的事件里添加就可。
    最后在那个label的“mouseleave”事件里把listbox再隐藏了就可。
      

  2.   

    有个笨方法,Winform系统的X Y定位非常准,可以在DataGrid的mouseover事件里面判断鼠标的x y轴位置,然后做操作
    暂时不知道有什么好方法
      

  3.   

    如何把onmouseover="alert('您的鼠标在所属公司上!')"这个代码放在下面这个语句呢?
    <asp:BoundColumn DataField="gs_name" SortExpression="gs_name" HeaderText="所属公司"></asp:BoundColumn>即鼠标移动到“所属公司”,就弹出一个窗口出来?
      

  4.   

     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Attributes.Add("onmouseover", "做显示。");
                e.Row.Attributes.Add("onmouseout", "做隐藏");
            }
        }
      

  5.   

    呵呵,在GridView的RowDataBound事件里处理啊,
    if (e.Row.RowType == DataControlRowType.Header)
    {
    ……
    }
      

  6.   

    先隐藏一个div,display为none~~鼠标移上去的时候 设置div的display为block
      

  7.   

    非要用Datagrid吗? 别的就不行?
      

  8.   

    谢谢大家,差不多搞定了。
    还要一个小问题:
    代码如下:<style type="text/css">
    #menu1 { Z-INDEX: 1; LEFT: 38px; WIDTH: 609px; POSITION: absolute; TOP: 238px; HEIGHT: 85px }
    </style>
    <DIV id="menu1" onmouseover="MM_showHideLayers('menu1','','show')" onmouseout="MM_showHideLayers('menu1','','hide')"></div>=======================
    如何让这个层相对定位呢?即相对列头定位。因为在Datagrid里有很多列头要做这个效果。
    POSITION: absolute; TOP: 238px; HEIGHT: 85px 
    这句是相对浏览器的来定位的,如何可以做到相对列头拉力定位呢?