本文讲述了asp.net异步获取datatable并显示的实现方法。分享给大家供大家参考,具体如下:
上面就是结果,前台代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<%@ Page Language= "C#" AutoEventWireup= "true" CodeFile= "MethodOne.aspx.cs" Inherits= "_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head runat= "server" > <title></title> <link href= "swcss.css" rel= "stylesheet" type= "text/css" /> <link href= "TableZB.css" rel= "stylesheet" type= "text/css" /> <script src= "js-datagrid/scripts/PagerView.js" type= "text/javascript" ></script> <link href= "js-datagrid/style.css" rel= "stylesheet" type= "text/css" /> <script src= "jquery-1.4.1.min.js" type= "text/javascript" ></script> <script type= "text/javascript" > var currentpage = 1; $(document).ready(function() { $. get ( "Handler.ashx?flag=data&index=" + currentpage, function(data) { $( "#sjxs" ).append(data); }); $. get ( "Handler.ashx?flag=count" , function(count) { var pager = new PagerView( 'pager' ); pager.itemCount = count; pager.size = 5; pager.onclick = function(index) { currentpage = index; $. get ( "Handler.ashx?flag=data&index=" + index, function(data) { $( "#sjxs tr" ).each(function(m) { $( "#add" + m).remove(); }); $( "#sjxs" ).append(data); }); }; pager.render(); } ); }); </script> </head> <body> <form id= "form1" runat= "server" > <fieldset style= "width: 98%; border: solid 1px #EDF7DC;" class = "fileset_style" > <legend class = "leg_style" >查询结果</legend> <%--<div style= "overflow:scroll;width:100%;height:100%" >--%> <table border= "1" cellpadding= "0" cellspacing= "0" width= "100%" align= "center" id= "sjxs" class = "TableStyleZB" > <tr class = "trTitle" > <td colspan= "5" >当前发票库存情况</td> <td colspan= "4" >购买后一年(含)以上未验旧使用情况</td> <td></td> </tr> <tr class = "trTitle" > <td>管理机关</td> <td>合计</td> <td>机打发票</td> <td>手工发票</td> <td>冠名发票</td> <td>其他</td> <td>正常户</td> <td>占库存户数的比率</td> <td>非正常户</td> <td>证件失效户</td> </tr> <tr class = "trTitle" > <td>0</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7=6/1</td> <td>8</td> <td>9</td> </tr> </table> <%--</div>--%> </fieldset> <div id= "pager" ></div> <div id= "info" ></div> </form> </body> </html> |
处理页面程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
<%@ WebHandler Language= "C#" Class= "Handler" %> using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Text; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain" ; if (context.Request.QueryString[ "flag" ].Equals( "data" )) { context.Response.Write(GetResult(5,Int32.Parse(context.Request.QueryString[ "index" ]))); } if (context.Request.QueryString[ "flag" ].Equals( "count" )) { context.Response.Write(getCount()); } } private string GetResult() { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[ "conn" ])) { conn.Open(); string sql = "SELECT * FROM TestBlog " ; SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(dt); } int rLen = dt.Rows.Count; int cLen = dt.Columns.Count; StringBuilder sb = new StringBuilder(); for ( int j = 0; j < rLen; j++) { sb.Append( "<tr>" ); for ( int i = 0; i < cLen; i++) { sb.Append( "<td>" ); sb.Append(dt.Rows[j][i].ToString()); sb.Append( "</td>" ); } sb.Append( "</tr>" ); } return sb.ToString(); } private string GetResult( int pagecount, int currentpage) { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[ "conn" ])) { conn.Open(); string sql = "SELECT TOP " +pagecount+ " * FROM TestBlog tb WHERE ydid NOT IN (SELECT TOP " +pagecount*(currentpage-1)+ " ydid FROM TestBlog tb2) " ; SqlDataAdapter sda = new SqlDataAdapter(sql,conn); sda.Fill(dt); } int rLen = dt.Rows.Count; int cLen = dt.Columns.Count; StringBuilder sb = new StringBuilder(); for ( int j = 0; j < rLen; j++) { sb.Append( "<tr id=add" +j+ ">" ); for ( int i = 0; i < cLen; i++) { sb.Append( "<td>" ); sb.Append(dt.Rows[j][i].ToString()); sb.Append( "</td>" ); } sb.Append( "</tr>" ); } return sb.ToString(); } private string getCount() { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[ "conn" ])) { conn.Open(); string sql = "select count(*) from testblog" ; SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(dt); } return dt.Rows[0][0].ToString(); } public bool IsReusable { get { return false ; } } } |
可惜的是,在ie7中显示不出来结果,但是在chrome、firefox和opera中倒是显示都正常,感兴趣的朋友可以对此加以完善。
希望本文所述对大家asp.net程序设计有所帮助。