如何对gridview中的单元格实现气泡提示? 有个用ASP.NET做的监控系统,gridview中是一些硬件的状态,当硬件状态为故障时,鼠标移到该单元格时,能够浮出一个气泡提示框,提示故障的可能原因和解决方法?气泡提示框内的信息希望能从某个地方(文件或数据库)读取,并且是可以更改的,因为用户希望以前的维护人员能够将他们的维护经验输入进系统,对以后的维护人员起一个指导作用。请问这个气泡提示该怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该不是鼠标移上去吧.难道在你的列表里看哪个硬件是不是故障了,还要拿鼠标挨个移上去看下?我认为应该是遍历的时候直接输出到页面上.有问题的硬件.前面就是一个感叹号.正常的么.可以是个勾..或者其它符号.点感叹号弹出窗口显示详细鼓掌信息.当然你不想用弹出窗口.用AJAX也可以...这样你就好做了,不存在技术问题了吧. 用AJAX吧,给个单元格属性加上onmouseoverJS里用异步获取数据,用DIV显示 1、为每个gridview行添加onmouseover 事件不难2、书写客户端脚本,当onmouseover 事件被激发后,显示一个DIV不难3、AJAX获取数据库信息(根据gridview行信息)不难4、DOM处理数据不难希望我所说的不难,不能成为你的难点。 在有故障的单元格属性加上onmouseover的js事件用AJAX异步获取数据并显示然后再加上一个 onmouseout 的 js 事件关闭显示的数据根本就不用点击 哪里有故障了...鼠标去点一下查看详细,有什么繁琐的....象4楼所说,你也可以写成onmouseover来打开一个浮动层....要更人性化.用smarttag吧.跟WORD里面的smarttag一样.外面一个圈圈,里面一个感叹号...怎么实现就去查资料不多说了. 谢谢大家,不好意思,可能要被大家鄙视我,我刚接触ASP.net(以前用VC的),对其不熟悉,我现在都是在网上下差不多的例子来分析。我会继续查资料的,不过谁能给点具体的代码,我将感觉不尽(你们bs我吧)!在有故障的单元格属性加上onmouseover的js事 ==》我怎么没找到gridview单元格的onmouseover事件呢?应该怎么添加?用AJAX异步获取数据并显示 然后再加上一个 onmouseout 的 js 事件关闭显示的数据 ==》这个也没找到,-_-!!!根本就不用点击 没有啊你做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方法在页面上写 隔行如隔山,能理解,给你做了个效果,你跑一下看看。数据库是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> 如果对asp.net不熟那就不好办了,这里涉及到asp.net, javascript, ajax等很多的,楼上的方法很好,慢慢学吧,每个人都是一点一滴学来的 呵呵,谢谢大家帮忙,真的非常感谢!!九楼的老兄,我将你写的那个事件放到了.cs文件中(双击“属性”->“RowDataBound”生成的),效果是一样的吗。为什么我编译的时候没有错误,运行后在网页的任务栏上提示“已完毕,但网页上有错误” 应该没有问题,我就是从.cs文件中拿出来的,你看看JS有没有问题,这种提示应该是JS的出错 注意查一下,你的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> 怎么可以让.net做出来的网站访问速度更快? 请教一个关于MVC3/MVC4的问题,高手请进。 小菜鸟弱弱的问下。。页面打不开怎么回事呢 运行不能加载数据到下拉列表框 遇到一个难题,肯定大家帮忙 请教一个跨域问题,如何解决?谢谢 请问哪有用c#语言做的asp.net全站程序下载啊? 简单的数据更新问题,请高手解决 WEBFORM下水晶报表可以实现编辑功能吗?比如显示一个已经保存好了的报表文件,然后进行编辑 NPOI导出word表格 DataTable.Select()多条件查询问题 asp.net中将sql server 2000数据库导出到excel???急---
我认为应该是遍历的时候直接输出到页面上.有问题的硬件.前面就是一个感叹号.正常的么.可以是个勾..或者其它符号.
点感叹号弹出窗口显示详细鼓掌信息.
当然你不想用弹出窗口.用AJAX也可以...
这样你就好做了,不存在技术问题了吧.
JS里用异步获取数据,用DIV显示
不难
2、书写客户端脚本,当onmouseover 事件被激发后,显示一个DIV
不难
3、AJAX获取数据库信息(根据gridview行信息)
不难
4、DOM处理数据
不难希望我所说的不难,不能成为你的难点。
用AJAX异步获取数据并显示
然后再加上一个 onmouseout 的 js 事件关闭显示的数据
根本就不用点击
象4楼所说,你也可以写成onmouseover来打开一个浮动层....
要更人性化.用smarttag吧.跟WORD里面的smarttag一样.外面一个圈圈,里面一个感叹号...怎么实现就去查资料不多说了.
用AJAX异步获取数据并显示
然后再加上一个 onmouseout 的 js 事件关闭显示的数据 ==》这个也没找到,-_-!!!
根本就不用点击
你做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方法在页面上写
{ }
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>
<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>