标签:
(1) 通过JS把页面上的数据转化成 JSON 数据( JavaScript Object Notation, 是一种轻量级的数据交换格式)
1 <script type="text/javascript">
2 var PageSize = 5;
3 var AllRecordCount = 0;
4
5 function PageSelectCallback(page_id, jq) {
6 InitData(page_id);
7 }
8
9 function InitData(pageindx) {
10 $.ajax({
11 type: "POST",
12 dataType: "json",
13 url: "StudyHistoryPager.ashx", //调用ashx文件,指定路径
14 data: "PageIndex=" + (pageindx + 1) + "&PageSize=" + PageSize + "&KnowledgeID=" + ‘<%=KnowledgeID %>‘,//通过传入ashx文件的参数
15
16 complete: function () {
17 $("#FAQList").fadeIn("slow");
18 $("#Pagination").show();
19 $("#divload").hide();
20 },
21 //json是从ashx文件返回的数据
22 success: function (json) {
23 var tbody = "<table cellspacing=‘0‘ cellpadding=‘2‘ border=‘0‘ width=‘100%‘>";
24 $("#FAQList").empty();
25 for (var key in json) {
26 if (key == "0") {
27 AllRecordCount = json[key].AllRecordCount;
28 }
29 var trs = "<tr><td align=‘left‘ width=‘70%‘ style=‘border-bottom: #ccc 1px dashed;‘><img src=‘../Skin/Img/studyhistory.png‘ /> " + json[key].CreateTimeString + " <span class=‘red‘>" + json[key].UserName + "</span>学习了该文章。</td></tr>";
30 tbody += trs;
31
32 }
33 tbody += "</table>";
34
35 if (AllRecordCount < 1) {
36 $("#FAQList").append("<div class=‘ac‘>很抱歉,暂时没有学习记录。</div>");
37 }
38 else {
39 $("#FAQList").append(tbody);
40 $("#Pagination").show().pagination(AllRecordCount, {
41 callback: PageSelectCallback,
42 prev_text: ‘上一页‘,
43 next_text: ‘下一页‘,
44 items_per_page: PageSize,
45 num_display_entries: 5,
46 current_page: pageindx,
47 num_edge_entries: 2
48 });
49 }
50 }
51 });
52 }
53 window.onload = function () {
54 InitData(0);
55 }
56 </script>
(2) 同时把这些数据传到一个“一般处理程序(.ashx)”
public void ProcessRequest(HttpContext context)
{
//不让浏览器缓存
context.Response.Buffer = true;
context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
context.Response.AddHeader("pragma", "no-cache");
context.Response.AddHeader("cache-control", "");
context.Response.CacheControl = "no-cache";
context.Response.ContentType = "text/plain";
int pageIndex;
int.TryParse(context.Request["PageIndex"], out pageIndex);
int pageSize;
int.TryParse(context.Request["PageSize"], out pageSize);
string knowledgeID = context.Request["KnowledgeID"];
#region 查询逻辑
//设置查询参数
Hashtable searchHashTable = new Hashtable();
Utility.CreateSearchCondition("t1.KnowledgeID", UtilityFunction.InputText(knowledgeID), "=", SqlDbType.UniqueIdentifier, "KnowledgeID", "KnowledgeID", ref searchHashTable);
PageInfo pageInfo = new PageInfo();
pageInfo.PageIndex = pageIndex;
pageInfo.PageSize = pageSize;
pageInfo.OrderField = "CreateTime DESC ";
searchHashTable.Add("PageInfo", pageInfo);
//查询合同信息
StudyHistoryBLL studyHistoryBll = new StudyHistoryBLL();
DataSet ds = studyHistoryBll.GetList(searchHashTable);
if (ds.Tables[1].Rows.Count == 0 && pageIndex > 1)
{
pageInfo.PageIndex = pageIndex - 1;
ds = studyHistoryBll.GetList(searchHashTable);
}
DataTable dt = ds.Tables[1];
DataColumn column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "CreateTimeString";
dt.Columns.Add(column);
DataColumn column2 = new DataColumn();
column2.DataType = Type.GetType("System.Int32");
column2.ColumnName = "AllRecordCount";
dt.Columns.Add(column2);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["CreateTimeString"] = dt.Rows[i]["CreateTime"].ToString();
dt.Rows[i]["AllRecordCount"] = ds.Tables[0].Rows[0][0];
}
#endregion
string jsonData = JsonUtility.DataTableToJson(dt);
context.Response.Write(jsonData);
}
/// <summary> /// 将DataTable转换为JSON /// </summary> /// <param name="dtb">Dt</param> /// <returns>JSON字符串</returns> public static string DataTableToJson(DataTable dt) { JavaScriptSerializer jss = new JavaScriptSerializer(); System.Collections.ArrayList dic = new System.Collections.ArrayList(); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> drow = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { drow.Add(dc.ColumnName, dr[dc.ColumnName]); } dic.Add(drow); } //序列化 return jss.Serialize(dic); } |
(3)在ashx文件中查询数据,然后将查询结果返回到页面。
(4)在页面中接收到返回的查询结果后进行分页。
效果如下:

原创,转载请说明出处。
标签:
原文地址:http://www.cnblogs.com/shouce/p/5331598.html