DataGrid中的每一行,绑定onmouseover、onmousemove、onmouseout事件

本文介绍了如何在DataGrid中利用JavaScript事件处理函数onmouseover、onmousemove和onmouseout,实现在鼠标悬停时显示包含国家、城市等详细信息的透明<div>,并当鼠标移出时将其隐藏。详细讲解了CSS样式、JavaScript函数以及后台填充DataGrid的数据处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现原理:
     为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" class="transparent" 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();");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值