|
楼主 |
发表于 2016-7-6 15:08:08
|
显示全部楼层
谢谢版主。不过用this.comp("daituilistData").toJson({format:'simple'});得到的也是[object Object]。
我现在采用另外一种办法来处理。
var dai=this.comp("daituilistData");
alert(this.comp("daituilistData").getCount());
var rjson="[{";
for ( var i = 0; i < dai.getCount(); i++) {
var rowid = this.comp("daituilistData").getRowByID(i);
rjson+="\"制造指示号\":";
rjson+= "\""+dai.getValue('制造指示号',rowid)+"\",";
rjson+="\"现存数量\":";
rjson+= "\""+dai.getValue('现存数量',rowid)+"\",";
}
//rjson+="\"制造指示号\":";
rjson+="}]";
alert(rjson);
var returninfo=this.comp("resultdata");
returninfo.clear();
// var bjData =this.comp("daituilistData").toJson(false,false,"fid",{
// format:'simple'
// })['rows'];
// var k=bjData.result;
$.ajax({
"type" : "post",
"async" : false,
"data": "args="+rjson,
"url" :"http://192.168.0.5/test/test.asmx/testapp",
"cache" : false,
"dataType" : "jsonp",
"jsonp": "callbackjsp",//服务端用于接收callback调用的function名的参数
"jsonpCallback":"successCallback",
success: function(json) {
//将结果存到页面的data中,并刷新显示到界面。
var str=json.result;
var strs= JSON.parse(str);
json={"@type" : "table","test" : {"idColumnName" : "fid","idColumnType" : "String", },"rows" :strs };
returninfo.loadData(json,false);
returninfo.refreshData();
},
error: function(x, e) {
alert("错误:"+x.responseText);
}
});
用这种方法来处理,结果为:
1、json为正确的。但是for循环,一直停在第1行。我的data中一共有2行数据。
2、弹出的json正确,但是用webservice收下来后,却变成乱码了。[{"鍒堕€犳寚绀哄彿":"鍒堕€犳寚绀哄彿","鐜板瓨鏁伴噺":"100","鍒堕€犳寚绀哄彿":"鍒堕€犳寚绀哄彿","鐜板瓨鏁伴噺":"100",}]
3、我在webservice中作了编码转换,但是会报不是base64码。然后又用了net自带的作了转换: byte[] buffer = Encoding.UTF8.GetBytes(args);
newarg = Encoding.GetEncoding("utf-8").GetString(buffer);出来的结果还是乱码。
|
|