[zt]DataGrid实现tooltip功能
<HTML>
<HEAD>
<title>DataGridTooltip</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<style type="text/css">
.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
}
</style>
<script language="javascript">
function Show(Country, City, Address, PostalCode, Phone, Fax)
{
//debugger;
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 = event.clientX + document.body.scrollLeft;
y = event.clientY + document.body.scrollTop + 20;
Popup.style.display="block";
Popup.style.left = x;
Popup.style.top = y;
}
function Hide()
{
Popup.style.display="none";
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<div id="Popup" class="transparent">
<table border="0" cellpadding="0" bgColor="#00ccff">
<tr>
<td align="center" 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>
<asp:DataGrid id="DataGrid1" runat="server">
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</form>
</body>
</HTML>
<HEAD>
<title>DataGridTooltip</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<style type="text/css">
.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
}
</style>
<script language="javascript">
function Show(Country, City, Address, PostalCode, Phone, Fax)
{
//debugger;
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 = event.clientX + document.body.scrollLeft;
y = event.clientY + document.body.scrollTop + 20;
Popup.style.display="block";
Popup.style.left = x;
Popup.style.top = y;
}
function Hide()
{
Popup.style.display="none";
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<div id="Popup" class="transparent">
<table border="0" cellpadding="0" bgColor="#00ccff">
<tr>
<td align="center" 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>
<asp:DataGrid id="DataGrid1" runat="server">
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</form>
</body>
</HTML>
public class DataGridTooltip : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private DataTable dt;
Page_Load#region Page_Load
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "data source=meng;initial catalog=Northwind;password=sa;persist security info=True;user id=sa;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);
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
}
}
#endregion
DataGrid1_ItemDataBound#region DataGrid1_ItemDataBound
private void DataGrid1_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();");
}
}
#endregion
Web Form Designer generated code#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private DataTable dt;
Page_Load#region Page_Load
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "data source=meng;initial catalog=Northwind;password=sa;persist security info=True;user id=sa;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);
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
}
}
#endregion
DataGrid1_ItemDataBound#region DataGrid1_ItemDataBound
private void DataGrid1_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();");
}
}
#endregion
Web Form Designer generated code#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
原帖:http://singlepine.cnblogs.com/articles/309354.html?login=1#commentform