DataGrid中的高级ToolTip
实现原理是在HTML中隐藏一个放在DIV标签中的Table,然后在分别通过鼠标的onmouseover和onmouseout事件实现在鼠标移动到不同的记录时显示不同记录的ToolTip信息,通过onmousemove事件实现ToolTip的跟随事件。
代码如下:
HTML
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
3<HTML>
4 <HEAD>
5 <title>DataGrid中的高级ToolTip</title>
6 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
7 <meta name="CODE_LANGUAGE" Content="C#">
8 <meta name="vs_defaultClientScript" content="JavaScript">
9 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
10 <style type="text/css">
11 .transparent {}{ BORDER-RIGHT: indianred 1px solid; BORDER-TOP: indianred 1px solid; DISPLAY: none; FILTER: alpha(opacity=85); BORDER-LEFT: indianred 1px solid; BORDER-BOTTOM: indianred 1px solid; POSITION: absolute; BACKGROUND-COLOR: infobackground }
12 </style>
13 <script language="javascript">
14 function Show(Country, City, Address, PostalCode, Phone, Fax)
15 {
16 document.getElementById("td1").innerText="国家:"+Country;
17 document.getElementById("td2").innerText="城市:"+City;
18 document.getElementById("td3").innerText="地址:"+Address;
19 document.getElementById("td4").innerText="邮政编码:"+PostalCode;
20 document.getElementById("td5").innerText="电话:"+Phone;
21 document.getElementById("td6").innerText="传真:"+Fax;
22
23 //获得鼠标的X轴的坐标
24 x = event.clientX + document.body.scrollLeft;
25
26 //获得鼠标的Y轴的坐标
27 y = event.clientY + document.body.scrollTop + 20;
28
29 //显示弹出窗体
30 Popup.style.display="block";
31
32 //设置窗体的X,Y轴的坐标
33 Popup.style.left = x;
34 Popup.style.top = y;
35 }
36
37 //隐藏弹出窗体
38 function Hide()
39 {
40 //隐藏窗体
41 Popup.style.display="none";
42 }
43 </script>
44</HEAD>
45 <body>
46 <form id="Form1" method="post" runat="server">
47 <TABLE id="Table1" cellSpacing="3" cellPadding="3" width="300" border="0">
48 <TR>
49 <TD>
50 <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
51<Columns>
52<asp:BoundColumn DataField="CustomerID" HeaderText="CustomerID"></asp:BoundColumn>
53<asp:BoundColumn DataField="CompanyName" HeaderText="CompanyName"></asp:BoundColumn>
54<asp:BoundColumn DataField="ContactTitle" HeaderText="ContactTitle"></asp:BoundColumn>
55<asp:BoundColumn DataField="Address" HeaderText="Address"></asp:BoundColumn>
56<asp:BoundColumn DataField="City" HeaderText="City"></asp:BoundColumn>
57<asp:BoundColumn DataField="PostalCode" HeaderText="PostalCode"></asp:BoundColumn>
58<asp:BoundColumn DataField="Country" HeaderText="Country"></asp:BoundColumn>
59<asp:BoundColumn DataField="Phone" HeaderText="Phone"></asp:BoundColumn>
60<asp:BoundColumn DataField="Fax" HeaderText="Fax"></asp:BoundColumn>
61</Columns>
62
63<PagerStyle Mode="NumericPages">
64</PagerStyle>
65 </asp:DataGrid></TD>
66 </TR>
67 <TR>
68 <TD>
69 <div id="Popup" class="transparent" style=" Z-INDEX: 200">
70 <table border="0" cellpadding="0" style="FONT-SIZE: x-small">
71 <tr>
72 <td valign="middle" bgcolor="indianred"><font color="white">联系方式</font></td>
73 </tr>
74 <tr>
75 <td id="td1"></td>
76 </tr>
77 <tr>
78 <td id="td2"></td>
79 </tr>
80 <tr>
81 <td id="td3"></td>
82 </tr>
83 <tr>
84 <td id="td4"></td>
85 </tr>
86 <tr>
87 <td id="td5"></td>
88 </tr>
89 <tr>
90 <td id="td6"></td>
91 </tr>
92 </table>
93 </div>
94 </TD>
95 </TR>
96 <TR>
97 <TD></TD>
98 </TR>
99 </TABLE>
100 </form>
101 </body>
102</HTML>
CS
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Data.SqlClient;
6using System.Drawing;
7using System.Web;
8using System.Web.SessionState;
9using System.Web.UI;
10using System.Web.UI.WebControls;
11using System.Web.UI.HtmlControls;
12using System.Configuration;
13
14namespace CSDNTech
15{
16 /**//// <summary>
17 /// DataGrid中的高级ToolTip 的摘要说明。
18 /// </summary>
19 public class DataGrid中的高级ToolTip : System.Web.UI.Page
20 {
21 protected System.Web.UI.WebControls.DataGrid DataGrid1;
22 protected string Conn = ConfigurationSettings.AppSettings["DBConn"];
23 private DataTable dt;
24
25 private void Page_Load(object sender, System.EventArgs e)
26 {
27 // 在此处放置用户代码以初始化页面
28 this.Format_DataGrid();
29 }
30
31 private void Format_DataGrid()
32 {
33 SqlConnection cn = new SqlConnection(Conn);
34 cn.Open();
35 try
36 {
37 SqlCommand com = new SqlCommand("select Top 16 CustomerID, CompanyName, ContactTitle,Country, City, Address,PostalCode,Phone,Fax from Customers",cn);
38 SqlDataAdapter adp = new SqlDataAdapter(com);
39 dt = new DataTable();
40 adp.Fill(dt);
41 this.DataGrid1.DataSource = dt;
42 this.DataGrid1.DataBind();
43 }
44 finally
45 {
46 cn.Close();
47 }
48 }
49
50 Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
51 override protected void OnInit(EventArgs e)
52 {
53 //
54 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
55 //
56 InitializeComponent();
57 base.OnInit(e);
58 }
59
60 /**//// <summary>
61 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
62 /// 此方法的内容。
63 /// </summary>
64 private void InitializeComponent()
65 {
66 this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
67 this.Load += new System.EventHandler(this.Page_Load);
68
69 }
70 #endregion
71
72 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
73 {
74 if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
75 {
76 e.Item.Attributes.Add("onmouseover", "this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#C8F7FF';");
77 e.Item.Attributes.Add("onmousemove", "Show('"+dt.Rows[e.Item.ItemIndex]["country"].ToString()+"','"
78 +dt.Rows[e.Item.ItemIndex]["City"].ToString()+"','"
79 +dt.Rows[e.Item.ItemIndex]["Address"].ToString()+"','"
80 +dt.Rows[e.Item.ItemIndex]["PostalCode"].ToString()+"','"
81 +dt.Rows[e.Item.ItemIndex]["Phone"].ToString()+"','"
82 +dt.Rows[e.Item.ItemIndex]["Fax"].ToString()+"');");
83 e.Item.Attributes.Add("onmouseout",
84 "this.style.backgroundColor=this.oldcolor;Hide();");
85 }
86 }
87 }
88}
转载于:https://www.cnblogs.com/Bear-Study-Hard/archive/2005/12/26/304523.html
DataGrid中的高级ToolTip相关推荐
- 在DataGrid中显示图片
兼谈 DadaGrid 模板列的创建 DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便.除了与数据源直接绑定以外,我们还可以通过列绑定模 ...
- 在DataGrid中添加一个LookUpColumn,以比较灵活地实现DictValue值代替DictID值显示.
在一个项目中,我遇到这样一个问题: 数据库字段只存储了一个字典ID1,在DataGrid中显示时,需要用相应的字典Value1来代替字典ID1显示.解决这个问题一般有两个方法: 方法1: 数据库查询 ...
- DataGrid中选择列文本根据绑定数据不同显示为不同颜色的处理办法
目前在维护一个Web应用,用户提出一些对我来说要求比较高的需求,摸索了一下,终于解决了.和大家分享一下: 问题:一般DataGrid中会有部分选择列,例如: <a ...
- webpack打包处理js文件中的高级语法
前言 在js文件中定义一个User类 import $ from 'jquery' import './css/at.css' import './css/at.less' import './css ...
- DataGrid中页导航栏的自定义样式
我们可以利用DataGrid的ItemCreat()方法来实现DataGrid中页脚(Foot)和页导航栏的自定义样式.ItemCreat,顾名思义,就是在数据项创建时发生的事件,对于DataGrid ...
- 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
配置 postCSS 自动添加 css 的兼容前缀 ① 运行 npm i postcss-loader autoprefixer -D 命令 ② 在项目根目录中创建 postcss 的配置文件 pos ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- DataGrid 中間隔色的實現
public void SetDataGridColor(System.Web.UI.WebControls.DataGrid dg,int Col) { //設置顯示已刪除記錄最後一列 ...
- 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH
在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH 原文 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不 ...
最新文章
- 99%的数据工作者不曾知道的一款利器
- dojo在ASP.NET中使用Ajax初步
- ZooKeeper入门之数据模型和常用命令介绍
- c语言中continue在case中,C語言switch case 語句中能否使用continue 關鍵字?
- 你得学会并且学得会的Socket编程基础知识(转)
- Spring框架----Confinguration和Component-Scan注解
- jdbc与java数据库编程_JDBC与JAVA数据库编程
- PHP 异常处理 throw new exception
- 【数据挖掘算法与应用】——数据挖掘导论
- 解决Android手机开发者选项经常自动关闭的问题
- 以大TMS运输配送管理系统
- Android面试题4
- Git如何合并分支到主干及合并主干到分支
- 【NLP CS224N笔记】Lecture 12 - Information from parts of words Subword Models
- python绘制图形界面(一)
- pdfbox或icepdf转换PDF为图片时,中文乱码处理
- 归一法的计算方法讲解_初三化学计算题中归一法,XY法,拆分法,分配法,K值法是怎样的,最好有具体的例子...
- 10个一般人不知道的小众网站,个个堪称神器,让你大开眼界
- 创建表空间oracle10g,Oracle10g创建表空间慢问题
- python: npy数据写入excel文件
热门文章
- 使用ps命令输出进程列表--用Enki学Linux系列(17)
- JavaScript函数与Window对象
- cxGrid导出Excel货币符号问题
- 在Servlet中使用开源fileupload包实现文件上传功能
- winform中捕获程序未处理的所有异常
- 回复——在我测试的软件说明中,说安装好jboss后,在浏览器的地址栏中输入127.0.0.1:88这……...
- 聚集索引和非聚集索引- -
- ElasticSearch之Java Api 测试
- 移动前端开发经验小结
- Cocos Creator中按钮组件数组的使用