asp.net异步获取datatable并显示的实现方法

2025-05-29 0 63

本文讲述了asp.net异步获取datatable并显示的实现方法。分享给大家供大家参考,具体如下:

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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 asp.net异步获取datatable并显示的实现方法 https://www.kuaiidc.com/101633.html

相关文章

发表评论
暂无评论