Ajax实现DataGrid/DataList动态ToolTip

 


1.建立一aspx页面,html代码2.cs代码

using  System.Data.SqlClient;
using  System.IO;

protected   void  Page_Load( object  sender, EventArgs e)
    
{
        
if (!Page.IsPostBack)
        
{
            BindData();
        }

        
if (ID != "")
        
{
            GetDescriptionByID(ID);
        }

    }


    
#region property
    
private string ID
    
{
        
get
        
{
            
if (Request["ID"!= null && Request["ID"].ToString() != "")
            
{
                
return Request["ID"];
            }

            
else
            
{
                
return "";
            }

        }

    }

    
#endregion


    
#region GetDescriptionByID
    
private void GetDescriptionByID(string ID)
    
{
        
string connStr = ConfigurationSettings.AppSettings["ConnectionString"];
        SqlConnection conn 
= new SqlConnection(connStr);
        
string sql = "select * from testimage where userid='" + ID + "'";
        SqlCommand cmd 
= new SqlCommand(sql, conn);
        conn.Open();
        SqlDataReader dr 
= cmd.ExecuteReader();

        
string s = @"<table cellspacing='0' cellpadding='4' width='300' height='200' border='0' id='GridView1' style='color:#333333;border-collapse:collapse;'>";
        
if(dr.Read())
        
{
            s 
+= "<tr style='color:#333333;background-color:#FFFBD6;'>";
            s 
+= "<td width='50'>名称:</td>";
            s 
+= "<td>" + dr["UserName"+ "</td>";
            s 
+= "</tr>";
            s 
+= "<tr style='color:#333333;background-color:White;'>";
            s 
+= "<td scope='col'>描述:</td>";
            s 
+= "<td>" + dr["Description"+ "</td>";
            s 
+= "</tr>";
        }

        s 
+= "</table>";
        dr.Close();
        conn.Close();
        
this.Response.Write(s);
        
this.Response.End();
    }

    
#endregion


    
#region save image
    
protected void Button2_Click(object sender, EventArgs e)
    
{
        Stream ImageStream;
        
string Path = FileUpload1.PostedFile.FileName;// 文件名称
        int Size = FileUpload1.PostedFile.ContentLength; // 文件大小
        string Type = FileUpload1.PostedFile.ContentType; // 文件类型
        ImageStream = FileUpload1.PostedFile.InputStream;
        
byte[] Content = new byte[Size];
        
int Status = ImageStream.Read(Content, 0, Size);

        SqlConnection conn 
= new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
        SqlCommand comm 
= new SqlCommand("insert into testimage (UserName,Image,Path,Type,Description) values(@UserName,@Image,@Path,@Type,@Description)", conn);

        comm.CommandType 
= CommandType.Text;
        comm.Parameters.Add(
"@UserName", SqlDbType.VarChar, 255).Value = txtUserName.Text;
        comm.Parameters.Add(
"@Image", SqlDbType.Image).Value = Content;
        comm.Parameters.Add(
"@Path", SqlDbType.VarChar, 255).Value = Path;
        comm.Parameters.Add(
"@Type", SqlDbType.VarChar, 255).Value = Type;
        comm.Parameters.Add(
"@Description", SqlDbType.VarChar, 2000).Value = this.TextBox1.Text;

        conn.Open();
        comm.ExecuteNonQuery();
        conn.Close();
    }

    
#endregion


    
#region BindData
    
private void BindData()
    
{
        
string sql = "select * from testimage";
        DataSet ds 
= GetDataSet(sql);
        
this.DataList1.DataSource = ds;
        
this.DataList1.DataBind();
    }

    
#endregion


    
#region GetDataSet
    
private DataSet GetDataSet(string sql)
    
{
        
string constring = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        SqlDataAdapter sda 
= new SqlDataAdapter(sql, constring);
        DataSet ds 
= new DataSet();
        sda.Fill(ds);
        
return ds;
    }

    
#endregion
3.数据库脚本
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[TestImage] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 )
drop   table   [ dbo ] . [ TestImage ]
GO

CREATE   TABLE   [ dbo ] . [ TestImage ]  (
    
[ UserID ]   [ int ]   IDENTITY  ( 1 1 NOT   NULL  ,
    
[ UserName ]   [ nvarchar ]  ( 500 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
[ Image ]   [ image ]   NULL  ,
    
[ Path ]   [ nvarchar ]  ( 500 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
[ Type ]   [ nvarchar ]  ( 20 ) COLLATE SQL_Latin1_General_CP1_CI_AS  NULL  ,
    
[ Description ]   [ nvarchar ]  ( 2000 ) COLLATE Chinese_PRC_CI_AS  NULL  
ON   [ PRIMARY ]  TEXTIMAGE_ON  [ PRIMARY ]
GO
 

< html >
 
< head >
  
< title > WebForm1 </ title >
  
< style  type ="text/css" > .logo { POSITION: absolute }.dek { Z-INDEX: 200; VISIBILITY: hidden; POSITION: absolute }</style>
 
</head>
 
<body>
 
<Form runat="server">
  
<DIV class="dek" id="dek"></DIV>
    
<script language="javascript">  
        Xoffset
=-20;
        Yoffset
=  20;       
        
var  nav,yyy=-1000;
        
var  skn=dek.style;
        document.onmousemove
=get_mouse;
        
        
//ajax
        var xmlHttp;        
        
function createXMLHttpRequest() 
        
{
            
if (window.ActiveXObject) 
            
{
                xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
            }
 
            
else if (window.XMLHttpRequest) 
            
{
                xmlHttp 
= new XMLHttpRequest();
            }

        }

            
        
function startRequest(id) 
        
{
            createXMLHttpRequest();
            xmlHttp.onreadystatechange 
= handleStateChange;
            xmlHttp.open(
"GET""?ID="+id, true);
            xmlHttp.send(
null);
        }

        
var content;    
        
function handleStateChange() 
        
{
            
if(xmlHttp.readyState == 4)
            
{
                
if(xmlHttp.status == 200)
                
{
                    content
=xmlHttp.responseText;
                }

            }

        }

        
//tooltip
        function  popup(id)
        
{
            startRequest(id);
            yyy
=Yoffset;
            document.all(
"dek").innerHTML=content;
            skn.visibility
="visible"
        }


        
function  get_mouse(e)
        
{
            
var  x=event.x+document.body.scrollLeft;
            skn.left
=x+Xoffset;
            
var  y=event.y+document.body.scrollTop;
            skn.top
=y+yyy;
        }


        
function  kill()
        
{
            yyy
=-1000;
            skn.visibility
="hidden";
        }

</script>  
  
<div>
    
<asp:FileUpload ID="FileUpload1" runat="server" /><br>名称:<asp:TextBox ID="txtUserName"
            runat
="server"></asp:TextBox><br>
      描述:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br>
        
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="保存" />
    
<asp:DataList id="DataList1"
           BorderColor
="black"
           CellPadding
="1"
           CellSpacing
="4" HorizontalAlign="Center"
           RepeatColumns
="4"
           RepeatLayout
="Table"
           runat
="server" ShowFooter="true" ShowHeader="true"
           width
="100%">
         
<ItemTemplate>
            
<%# DataBinder.Eval(Container.DataItem, "UserName")%><br>
            
<img ID="img1" onmouseover="popup(<%# DataBinder.Eval(Container.DataItem, "UserID")%>);" οnmοuseοut="kill();" src='<%# DataBinder.Eval(Container.DataItem, "Path"%>' height='150'/>
         
</ItemTemplate>
      
</asp:DataList>    
    
</div>
    
</Form>
 
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF 中的 DataGrid 和 ListView 都没有内置的分页控件,但可以通过一些方法来实现分页功能。 一种实现方式是使用 CollectionView,它是用于对集合进行排序、过滤和分组的类。可以使用 CollectionViewSource 创建 CollectionView,并在 XAML 中绑定到分页控件中。 以下是一个示例,其中使用 CollectionViewSource 来创建 CollectionView,并将其绑定到 ListView 控件中: ```xml <Grid> <Grid.Resources> <CollectionViewSource x:Key="cvs" Source="{Binding Items}" PageSize="10"/> </Grid.Resources> <ListView ItemsSource="{Binding Source={StaticResource cvs}}" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <Button Content="Prev" Command="{Binding Source={StaticResource cvs}, Path=PageUpCommand}" /> <TextBlock Text="{Binding Source={StaticResource cvs}, Path=PageIndex}" /> <Button Content="Next" Command="{Binding Source={StaticResource cvs}, Path=PageDownCommand}" /> </StackPanel> </Grid> ``` 在上面的示例中,CollectionViewSource 用于创建 CollectionView,并使用 PageSize 属性来指定每页的项数。ListView 控件绑定到 CollectionViewSource 中的 CollectionView。 同时,使用按钮来切换分页,每个按钮都绑定到 CollectionViewSource 中的 PageUpCommand 和 PageDownCommand 命令,以便在前一页和后一页之间切换。 还有其他的实现方式,例如手动分页和使用第三方分页控件等等。具体实现方式可以根据项目需求来选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值