有个用ASP.NET做的监控系统,gridview中是一些硬件的状态,当硬件状态为故障时,鼠标移到该单元格时,能够浮出一个气泡提示框,提示故障的可能原因和解决方法?气泡提示框内的信息希望能从某个地方(文件或数据库)读取,并且是可以更改的,因为用户希望以前的维护人员能够将他们的维护经验输入进系统,对以后的维护人员起一个指导作用。请问这个气泡提示该怎么实现呢?

解决方案 »

  1.   

    应该不是鼠标移上去吧.难道在你的列表里看哪个硬件是不是故障了,还要拿鼠标挨个移上去看下?
    我认为应该是遍历的时候直接输出到页面上.有问题的硬件.前面就是一个感叹号.正常的么.可以是个勾..或者其它符号.
    点感叹号弹出窗口显示详细鼓掌信息.
    当然你不想用弹出窗口.用AJAX也可以...
    这样你就好做了,不存在技术问题了吧.
      

  2.   

    用AJAX吧,给个单元格属性加上onmouseover
    JS里用异步获取数据,用DIV显示
      

  3.   

    1、为每个gridview行添加onmouseover 事件
    不难
    2、书写客户端脚本,当onmouseover 事件被激发后,显示一个DIV
    不难
    3、AJAX获取数据库信息(根据gridview行信息)
    不难
    4、DOM处理数据
    不难希望我所说的不难,不能成为你的难点。
      

  4.   

    在有故障的单元格属性加上onmouseover的js事件
    用AJAX异步获取数据并显示
    然后再加上一个 onmouseout 的 js 事件关闭显示的数据
    根本就不用点击
      

  5.   

    哪里有故障了...鼠标去点一下查看详细,有什么繁琐的....
    象4楼所说,你也可以写成onmouseover来打开一个浮动层....
    要更人性化.用smarttag吧.跟WORD里面的smarttag一样.外面一个圈圈,里面一个感叹号...怎么实现就去查资料不多说了.
      

  6.   

    谢谢大家,不好意思,可能要被大家鄙视我,我刚接触ASP.net(以前用VC的),对其不熟悉,我现在都是在网上下差不多的例子来分析。我会继续查资料的,不过谁能给点具体的代码,我将感觉不尽(你们bs我吧)!在有故障的单元格属性加上onmouseover的js事 ==》我怎么没找到gridview单元格的onmouseover事件呢?应该怎么添加?
    用AJAX异步获取数据并显示 
    然后再加上一个 onmouseout 的 js 事件关闭显示的数据  ==》这个也没找到,-_-!!!
    根本就不用点击
      

  7.   

    没有啊
    你做c++的
    我向来都觉得做c++ 的人都很牛
    呵呵    
    希望这个能够帮你
     foreach(int rowIndex in gvData.Rows.Count)
            {
                foreach (int colIndex in gvData.Columns.Count)
                {
                    if (gvData.Rows[rowIndex].Cells[colIndex].Text == "IsError")
                    {
                        gvData.Rows[rowIndex].Cells[colIndex].Attributes.Add("onmouseover", "YourGetDataFunctionName(param a,param b)");
                        gvData.Rows[rowIndex].Cells[colIndex].Attributes.Add("onmouseout ", "YourHideDivFunctionName()");
                    }
                }
            }js方法在页面上写
      

  8.   

    隔行如隔山,能理解,给你做了个效果,你跑一下看看。数据库是Northwind.=========================================================================<%@ Page Language="C#"  %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    e.Row.Cells[i].Attributes.Add("onmouseover", string.Format("show('{0}');", e.Row.Cells[2].Text));
                    e.Row.Cells[i].Attributes.Add("onmousemove", string.Format("show('{0}');", e.Row.Cells[2].Text));
                    e.Row.Cells[i].Attributes.Add("onmouseout", string.Format("show('');"));
                }
            }
        }
    </script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID"
                DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound" Width="486px">
                <Columns>
                    <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" InsertVisible="False"
                        ReadOnly="True" SortExpression="CategoryID" />
                    <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
                    <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                SelectCommand="SELECT [CategoryID], [CategoryName], [Description], [Picture] FROM [Categories]">
            </asp:SqlDataSource>
        <div id="divShow" style="display:; font-size:18px; color:Red;" >   埃担罚sfasdf</div>
        <script type="text/javascript" >
           function show(s)
           {
                var o=document.getElementById("divShow");
                
                if(s!="")
                {
                    o.style.display="block";
                    o.innerHTML=s;
                }
                else
                {
                    o.style.display="none";
                    o.innerHTML="";        
                }       
           }
        </script>
        </div>
        </form>
    </body>
    </html>
      

  9.   

    如果对asp.net不熟那就不好办了,这里涉及到asp.net, javascript, ajax等很多的,楼上的方法很好,慢慢学吧,每个人都是一点一滴学来的
      

  10.   

    呵呵,谢谢大家帮忙,真的非常感谢!!九楼的老兄,我将你写的那个事件放到了.cs文件中(双击“属性”->“RowDataBound”生成的),效果是一样的吗。为什么我编译的时候没有错误,运行后在网页的任务栏上提示“已完毕,但网页上有错误”
      

  11.   

    应该没有问题,我就是从.cs文件中拿出来的,你看看JS有没有问题,这种提示应该是JS的出错
      

  12.   

    注意查一下,你的JS的函数是不是我这个,或是层的ID是不是这个。再或者把你的页面的源代码帖上来看看,在IE中按右键查看源代码——》全选-->复制<div id="divShow" style="display:; font-size:18px; color:Red;" >  埃担罚sfasdf </div> 
        <script type="text/javascript" > 
          function show(s) 
          { 
                var o=document.getElementById("divShow"); 
                
                if(s!="") 
                { 
                    o.style.display="block"; 
                    o.innerHTML=s; 
                } 
                else 
                { 
                    o.style.display="none"; 
                    o.innerHTML="";        
                }      
          } 
        </script>