• 通过ashx获取JSON数据的两种方式


    网上asp.net开发jquery mobile的示例很少,根据网上提供的不完全资料自己研究了一下,通过两种方式可以获取JSON数据:

    第一,通过get实现:

    //前面引用省略
    <script>

    $('#frmmain').live('pageinit', function(event) {
            $.get('handler/aprvhandler.ashx', { type: 'myParam', cnt: '10' }, function(data) {

                var userlist = $.parseJSON(data); //解析JSON
                $("#userlist").append("<ul data-role='listview'></ul>");  
                $.each(userlist, function(index, value) {

                    var temp = "<li><a href='aprvdetail.aspx?id=" + value + "'><h3>" + value + "</h3></a></li>";
                    $("#userlist ul").append(temp);
                });
                $("#userList").trigger("create"); 

                });
    });
    </script>

    第二,通过post实现:

     

    //前面引用省略
    <script>

       $('#frmmain').live('pageinit', function(event) {
            $.post('handler/aprvhandler.ashx', { type: 'myParam', cnt: '10' }, function(data) {
                $("#userList").append("<ul data-role='listview'></ul>");
                $.each(data, function(index, value) {

                    var temp = "<li><a href='aprvdetail.aspx?id=" + value + "'><h3>" + value + "</h3></a></li>";
                    $("#userList ul").append(temp);
                });
                $("#userList").trigger("create"); 

                },"json");
        });
    </script>


     
    //通用页面
    <body>
        <!-- Home -->
        <div data-role="page" data-theme="b" id="frmmain"  data-ajax="false">
            <div data-theme="b" data-role="header">
                <h4>
                    XXXX系统
                </h4>
            </div>
            <div data-role="content" style="padding: 15px">
                <div data-role="collapsible-set" data-theme="" data-content-theme="">
                    <div data-role="collapsible" data-collapsed="false">
                        <h3>
                            用户列表
                        </h3>

                        <div data-role="content"  id="userList" class="content"></div> 

                    </div>
                </div>

    </body>
    </html>


    两种实现方式差不多,只是$.get方法没有json这个参数,所以在代码里面解析。

     后台ashx也比较简单,需要引用Jayrock.JSON.dll第三方控件

    <%@ WebHandler Language="C#" Class="AprvHandler" %>

    using System;
    using System.Web;
    using Jayrock.Json;
    using System.IO;

    public class AprvHandler : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) {
            HttpContext.Current.Response.ContentType = "text/plain";
            string query = HttpContext.Current.Request.Params["type"];
            if (string.IsNullOrEmpty(query))
            {
                HttpContext.Current.Response.Write("parameter error");
                return;
            }
            string strJsonText = @"{'id':1,'count':'4','name':'Alice','list':[1001,1002,1003,1004]}";
            JsonReader reader = new JsonTextReader(new StringReader(strJsonText));

            JsonObject jsonObj = new JsonObject();
            jsonObj.Import(reader);

            HttpContext.Current.Response.Write(jsonObj);

            HttpContext.Current.Response.End();
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    }
  • 相关阅读:
    多线程
    带缓存的输入输出流
    输入输出流I/O2
    输入输出流I/O
    课堂所讲整理:包装&工具类
    课堂所讲整理:Set和Map
    Java泛型和链表
    Java继承_接口练习题
    P235 实战练习(集合类)
    P188 实战练习(父类和子类)
  • 原文地址:https://www.cnblogs.com/habin/p/2620409.html
Copyright © 2020-2023  润新知