首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Handler1.ashx文件,前台用AJAX如何取数据

2012-12-18 
Handler1.ashx文件,前台用AJAX怎么取数据本帖最后由 chirea 于 2012-11-27 17:37:05 编辑Handler1.ashx文

Handler1.ashx文件,前台用AJAX怎么取数据
本帖最后由 chirea 于 2012-11-27 17:37:05 编辑 Handler1.ashx文件代码


  /// <summary>
    /// ProductHandler 的摘要说明
    /// </summary>
    public class ProductHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/xml";
            string PCid = context.Request["ID"];
            DataSet ProClass = Business.BLL_Product.getProductClassByID(PCid);
          //  ProClass.WriteXml(context.Response.Output);
            context.Response.Write(ProClass.GetXml());
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

前台代码

 <script type="text/ecmascript">
       
        $(function () {
            $('a').click(function () {
                $('.children').css('display', 'none');
                $(this).next('.children').css('display', 'block');
                var Pid = $(this).attr('id');
                $.post("ProductHandler.ashx", { "ID": Pid }, function (xhr) {
                    var items = xhr.firstChild;
                    items = $(items);
                    var str = "";
                    for (var i = 0; i < items[0].childNodes.length; i++) {
                        var ID = $(items[0].childNodes[i]).find("ID").text();
                        var C4_Picture1 = $(items[0].childNodes[i]).find("C4_Picture1").text();
                        var ProductID = $(items[0].childNodes[i]).find("ProductID").text();


                        str += '<div class="ProImg"><div> <a href="ProductDetail.aspx?id=' + ID + '"><img src="' + C4_Picture1 + '" alt="Handler1.ashx文件,前台用AJAX如何取数据" /></a></div>' + '<div class="ProductName"> ' + ProductID + '</div>  </div>'
                  
                    }
                    $("producc").html(str);
                });

            });
        })


前台这样写for循环找不到数据.还是有什么方法可以很方便快捷的取到一般性程序文件的数据呢?
 var ID = $(items[0].childNodes[i]).find("ID").text();这样经常找不到.但直接方问ProductHandler.ashx是有数据的

[最优解释]

$.post("getdata.ahsx",{"type":$("#txttype").val()},function(data,status){
    if(status!="success"){
      return;    
    }
    var jsonData = $.ParseJSON(data);
     for(var i=0;i<jsonData.length;i++){
       //你的操作
     }
 })

[其他解释]
哪位高手能指点一下.搞了好久没搞明白
[其他解释]
返回json格式是不是容易处理一些。 

$.get(url,function(data){
  //data is json
},"json")

Newtonsoft.Json 可方便转 datable, dataset到json.
[其他解释]
引用:
返回json格式是不是容易处理一些。 

$.get(url,function(data){
  //data is json
},"json")

Newtonsoft.Json 可方便转 datable, dataset到json.

有这方面的例子吗?

[其他解释]
先把你的dataset转换为对象集合(需要先建一个实体类,再建一个泛型LIST集合,将这些对象添加到集合中),然后再用JavaScriptSerializer类进行序列化发送给前台。
[其他解释]
引用:
返回json格式是不是容易处理一些。 
同意!

我只处理json。
[其他解释]
引用:
先把你的dataset转换为对象集合(需要先建一个实体类,再建一个泛型LIST集合,将这些对象添加到集合中),然后再用JavaScriptSerializer类进行序列化发送给前台。

谢谢,我转成JSON后
前台要怎么取得值呢?

    var request = new Sys.Net.WebRequest();
                    request.set_url("ProductHandler.ashx");
                    request.set_httpVerb("POST")
                    request.add_completed(


                        function (response) {
                            if (response.get_responseAvailable()) {
                                var prol = response.get_object();
                                alert(prol.ID);

                            }

                        });

                    var requestBody = String.format("ID={0}", Pid);
                    request.set_body(requestBody);
                    request.invoke();


直接访问ProductHandler.ashx?id='xxxxxxx'
以经有JSON数据了
定义了一个这样的类

 public class ProductList {
        public string ID { get; set; }
        public string  ProductID { get; set; }
        public string  ProductImages { get; set; }
    }


前台要怎么取得数据呢?
[其他解释]
引用:
引用:
先把你的dataset转换为对象集合(需要先建一个实体类,再建一个泛型LIST集合,将这些对象添加到集合中),然后再用JavaScriptSerializer类进行序列化发送给前台。
谢谢,我转成JSON后
前台要怎么取得值呢?


XML/HTML code?



1234567891011121314151617

    va……


使用javascript的eval方法,或者jQuery的ParseJSON方法(需要引入jQuery库)就可以将JSON数据转换为数组,并对数组进行遍历,并操作显示这些数据。
[其他解释]
引用:
引用:引用:
先把你的dataset转换为对象集合(需要先建一个实体类,再建一个泛型LIST集合,将这些对象添加到集合中),然后再用JavaScriptSerializer类进行序列化发送给前台。
谢谢,我转成JSON后
前台要怎么取得值呢?


XML/HTML code?



1234……


JSON数据格式是下面这样的


[{"ID":"49613990-edb5-406e-82d4-4d80898b7593","ProductID":"BBB","ProductImages":""},{"ID":"1b2d938c-5ab2-4865-951e-4e5c50d0f4de","ProductID":"a2","ProductImages":""},{"ID":"7d6b1884-7112-4be1-9a0f-5a78399f3124","ProductID":"A002","ProductImages":""},{"ID":"8e31568d-2ee6-4d92-9930-64dddbd82bd7","ProductID":"A003","ProductImages":""},{"ID":"bf35db9f-8476-4709-9921-7b938334d439","ProductID":"ss","ProductImages":""}]

我在回调函数里面不知道怎么取这里面的值了

  request.add_completed(
                        function (response) {
                         //这里不知道怎么取.


                          没有取过JSON数据.能举例说一下吗?
                        });


[其他解释]
引用:
JavaScript code?12345678910$.post("getdata.ahsx",{"type":$("#txttype").val()},function(data,status){    if(status!="success"){      return;        }    var jsonData = $.ParseJSON(data);  ……

全是JQ的写法不太会,

我需要向ahsx传送一个ID参数进去的.这种写法怎么传参呀
[其他解释]
弄明白了.谢谢yaotomo

热点排行