当时用extjs2.2和asp.net 2.0 做个功能需要传数组,且字符量较大,第一想到了,url传值,但是url传值限制性太大。最后想到了,以textfield的形式form提交。
先把要提交的内容,拼成json的格式,然后到后台再解析json格式。思路就是这样.但是网上的资料很少有说到解析数组的例子,所以写了此文章,和大家共享。希望大家pz和交流
在extjs2.2中利用Ext.util.JSON.encode();
var myObject = new Object(); //创建对象
var obindings = new Array();
var editFinTemWinArray=new Array();
editFinTemWinArray=.......//对此数组赋值
selections = selectionMode.getSelections();
if (selections.length > 0) {
for (var i = 0; i < selections.length; i++) {
for(var j=0;j<editFinTemWinArray.length;j++){
if(editFinTemWinArray[j]["name"]==selections[i].data["name"]){
var obj = new Object();
obj.name = editFinTemWinArray[j]["name"];
obj.template = editFinTemWinArray[j]["pwd"];
obindings[j] = obj;
}
}
}
myObject = obindings;
Ext.getCmp('textfield').setValue(encodeURIComponent(Ext.util.JSON.encode(myObject)));//给隐藏文本赋值
myObject.toJSONString()
在后台中用Newtonsoft.Json.dll中的方法来解析
strJson=Request.Form["'textfield'"];
public class JsonToList
{
public JsonToList()
{ }
public string name;
public string pwd;
}
List<JsonToList> JsonList = (List<JsonToList>)JavaScriptConvert.DeserializeObject(strJson, typeof(List<JsonToList>));//就这句话搞了我好长时间。
如果觉得此文章对你有用,希望大家顶顶我的原创啊!