整個過程對於熟練的人來說簡單無比,通過簡單的ajax請求獲取一般處理頁面返回的json字符串,在頁面對返回的json字符串進行解析,並綁定到對應的列表。
頁面代碼:
- <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyTestWebApp.JsonData.Default" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
- <script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
- <script type="text/javascript">
- <pre name="code" class="javascript">$(document).ready(function () {
- $.ajax({
- type: "get",
- dataType: "Json",
- url: "JsonHandler.ashx",
- start: function () { alert("開始獲取數據了") },
- complete: function () { alert("獲取完了") },
- success: function (data) {
- var t = eval(data); //強制轉換一下json字符串,生成json對象
- $.each(t, function (i, n) {
- var row = $("#template").clone(); //克隆模板,創建一個新數據行
- for (attribute in n) {
- row.find("#" + attribute).html(n[attribute]); //循環json對象的屬性,並賦值到數據行中對應的列,此處列的id就是相應的屬性名稱
- }
- row.appendTo($("#testTable"));
- });
- }
- });
- });
</script></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"><table id="testTable"> <th>編號</th><th>標題</th><th>內容</th> <!--數據模板--> <!--其中每一列的id就是對應記錄中的列名--> <tr id="template"><td id="Id"></td><td id="title"></td><td id="content"></td></tr> <!--數據模板--></table></asp:Content>
一般處理頁面代碼:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MyTestWebApp.Code;
- using System.Data;
-
- namespace MyTestWebApp.JsonData
- {
- /// <summary>
- /// JsonHandler 的摘要說明
- /// </summary>
- public class JsonHandler : IHttpHandler
- {
-
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/javascript";
- DataTable table = SqlHelper.ExecuteDataset(SqlHelper.connectionString, CommandType.Text, "select Id, title, content from Accordion").Tables[0];
- context.Response.Write(JSONHelper.DataTableToJSON(table));
- }
-
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
- }