当前位置:编程学习 > C#/ASP.NET >>

jquery处理后台传递过来的数据问题,请高手帮助,在线

代码如下:
 
function refersh_shopping_call_back(return_dt) {
        debugger;
        trolley_obj = return_dt;
        var prodcount = 0;
        debugger;
        $.each(trolley_obj.Rows, function(i, n) {
            if (!trolley_obj.Rows[i]['HasStock']) {
                not_exist_prod += trolley_obj.Rows[i]['ProductName'] + "<br>";
                not_exist_prodid.push(trolley_obj.Rows[i]['ProductID']);
            }
            if (trolley_obj.Rows[i]['ProductNum'] > trolley_obj.Rows[i]['Fororder']) {
                over_order += trolley_obj.Rows[i]['ProductName'] + "<br>";
            }
            prodcount += Number(trolley_obj.Rows[i]['ProductNum']);
        })

        $('#fldiv .fldivstate div:first span:first').text(prodcount);
        $('#trolley span:first').text(prodcount);

        if (para == 1) {
            add_Shoping_car_call_back(return_dt);
        }
        if (is_car_exist == 1) {
            showCar();
        }
    }

这个是做添加购物车功能,是学习别人的网站的demo,我后台是拼装json串序列化后传递的,但是不知道这个方法return_dt明显是要传递一个datatable,但是这如何传呀!用的是jquery1.3.1,请高手解围! --------------------编程问答-------------------- 帮顶~这个不懂 --------------------编程问答-------------------- 有人做过这种功能没有呀
--------------------编程问答-------------------- 汗,怎么会传一个DataTable

楼主上Google查下:Datatable转Json。

你就会明白怎么做了 --------------------编程问答-------------------- trolley_obj = return_dt;

$.each(trolley_obj.Rows, function(i, n) {...}

转成了json传过去了,而且也接收到了数据,但是这个只是json数据,trolley_obj.Rows?这个属性是怎么弄来的呢? --------------------编程问答-------------------- 不是吧,传回来的值可能是这么个形式而已,这种形式你把看成XML或是字符串拼接一样处理,不要看形式,要看实质----个人理解,不对请指正

<table>
<tr><td>1</td><tr/>
<tr><td>2</td><tr/>
<tr><td>3</td><tr/>
<tr><td>4</td><tr/>

</table> --------------------编程问答-------------------- base.js中包含:

function myParseDataTable(raw_obj)
{var i,j;var dt=new DataTable();copyDT(dt,raw_obj);for(i=0;i<dt.Columns.Count;i++)
if(dt.Columns[i].DataType=='System.DateTime')
for(j=0;j<dt.Rows.Count;j++)
dt.Rows[j][dt.Columns[i].ColumnName]=myParseDateTime(dt.Rows[j][dt.Columns[i].ColumnName]);return dt;function copyDT(dt1,dt2)
{dt1.TableName=dt2.TableName==undefined?"table1":dt2.TableName;var a_dr=dt1.NewRow();var a_dc=new DataColumn();for(var i=0;i<dt2.Columns.length;i++)
{dt2.Columns[i].Clone=a_dc.Clone;dt2.Columns[i].Find=a_dc.Find;dt1.Columns.push(dt2.Columns[i]);}
dt1.Columns.Count=dt1.Columns.length;dt2.Rows.Find=dt1.Rows.Find;for(var i=0;i<dt2.Rows.length;i++)
{dt2.Rows[i].Clone=a_dr.Clone;dt2.Rows[i].toJSON=a_dr.toJSON;dt1.Rows.Add(dt2.Rows[i]);}}}


jQuery.extend({LT_AJAX:function(op,data,callback,module_name){var ws_file;if(module_name!=undefined)
ws_file=module_name+".aspx";else
ws_file="/web_service/user_ws.aspx";return jQuery.post(ws_file+"?op="+op,{data:JSON.stringify(data)},function(r_data){callback(myJSONparse(r_data))});}});function _lt_click_stat(lt_stat_id)
{if(typeof lt_page_id=='undefined')
return;$.get("/web_service/click_stat.aspx?op=save_stat&pid="+lt_page_id+"&cid="+lt_stat_id+"&rand="+Math.random());}
$(document).ready(function(){$("[lt_stat_id]").click(function(){_lt_click_stat($(this).attr("lt_stat_id"));});});function getMicroTime()
{var now=new Date();return now.getTime();}

调用方法是:$.LT_AJAX("cart_get", null, refersh_shopping_call_back, "user_cart");
调用页面的值返回的都是josn串,不知道这里面是不是有一种转换呢
--------------------编程问答-------------------- up --------------------编程问答-------------------- 你把得到的数据直接拼接Html字符串,最后把拼好的字符插入页面 --------------------编程问答-------------------- 还是先看看传回来的值是个什么样子,然后再决定怎么办吧,真个可以用抓包工具,抓到内容看看。 --------------------编程问答-------------------- 传过来的是这种格式:[{attrName:"款式",selectValue:[{valueId:"59",title:"长袖"},{valueId:"60",title:"九分"}]}] ,我在后台转化成json了的,这个肯定不会是datatable了呀 --------------------编程问答-------------------- ㄗIT技术交流 29990225 --------------------编程问答-------------------- 要将datatable对象转换成json对象在C#中可以用 JavaScriptSerializer 这个类的Serialize方法。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,