[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>

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
    }

原帖:http://singlepine.cnblogs.com/articles/309354.html?login=1#commentform
posted @ 2009-07-23 21:34  Conan304  阅读(234)  评论(0编辑  收藏  举报