DataGrid中的高级ToolTip

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

DataGrid中的高级ToolTip

DataGrid中的高级ToolTip 效果如下图所示:

实现原理:

为DataGrid中的每一行,绑定onmouseover、onmousemove、onmouseout事件,使的鼠标移动到行内时,自动显示一个<div>,鼠标移出该行,就把这个<div>隐藏掉。

实现代码:

前台:

1. 定义<div>的样式:

<style type='text/css'>

.transparent { FILTER: alpha(opacity=85);

BORDER-TOP: indianred 1px solid;

BORDER-RIGHT: indianred 1px solid;

BORDER-LEFT: indianred 1px solid;

BORDER-BOTTOM: indianred 1px solid;

POSITION: absolute;

BACKGROUND-COLOR: infobackground;

DISPLAY: none }

</style>

2. 显示和隐藏窗体的脚本:

<script language='javascript'>

//显示弹出窗体

function Show(Country, City, Address, PostalCode, Phone, Fax)

{

document.getElementById('td1').innerText='国家:'+Country;

document.getElementById('td2').innerText='城市:'+City;

document.getElementById('td3').innerText='地址:'+Address;

document.getElementById('td4').innerText='邮政编码:'+PostalCode;

document.getElementById('td5').innerText='电话:'+Phone;

document.getElementById('td6').innerText='传真:'+Fax;

//获得鼠标的X轴的坐标

x = event.clientX + document.body.scrollLeft;

//获得鼠标的Y轴的坐标

y = event.clientY + document.body.scrollTop + 20;

//显示弹出窗体

Popup.style.display='block';

//设置窗体的X,Y轴的坐标

Popup.style.left = x;

Popup.style.top = y;

}

//隐藏弹出窗体

function Hide()

{

//隐藏窗体

Popup.style.display='none';

}

</script>

3. ToolTip窗体的代码

<div id='Popup' style=' Z-INDEX: 200'>

<table border='0' cellpadding='0' style='FONT-SIZE: x-small'>

<tr>

<td align='middle' bgcolor='indianred'><font color='white'>联系方式</font></td>

</tr>

<tr><td id='td1'></td></tr>

<tr><td id='td2'></td></tr>

<tr><td id='td3'></td></tr>

<tr><td id='td4'></td></tr>

<tr><td id='td5'></td></tr>

<tr><td id='td6'></td></tr>

</table>

</div>

后台:

private DataTable dt;

private void Page_Load(object sender, System.EventArgs e)

{

// Put user code to initialize the page here

if(!IsPostBack)

{

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString = 'data source=localhost;initial catalog=Northwind;password=;'

+'persist security info=True;user id=sa;workstation id=APJ062;packet size=4096';

string sqlstr = 'select Top 16 CustomerID, CompanyName, ContactTitle,Country, City, Address,PostalCode,Phone,Fax from Customers';

cnn.Open();

SqlDataAdapter ad = new SqlDataAdapter(sqlstr,cnn);

dt = new DataTable();

ad.Fill(dt);

grdCustomer.DataSource = dt;

grdCustomer.DataBind();

}

}

private void grdCustomer_ItemDataBound(object sender,

System.Web.UI.WebControls.DataGridItemEventArgs e)

{

if(e.Item.ItemType == ListItemType.AlternatingItem

|| e.Item.ItemType == ListItemType.Item)

{

e.Item.Attributes.Add('onmouseover',

'this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#C8F7FF';');

e.Item.Attributes.Add('onmousemove',

'Show(''+dt.Rows[e.Item.ItemIndex]['country'].ToString()+'',''

+dt.Rows[e.Item.ItemIndex]['City'].ToString()+'',''

+dt.Rows[e.Item.ItemIndex]['Address'].ToString()+'',''

+dt.Rows[e.Item.ItemIndex]['PostalCode'].ToString()+'',''

+dt.Rows[e.Item.ItemIndex]['Phone'].ToString()+'',''

+dt.Rows[e.Item.ItemIndex]['Fax'].ToString()+'');');

e.Item.Attributes.Add('onmouseout',

'this.style.backgroundColor=this.oldcolor;Hide();');

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有