jqgrid jsonReader

来源:互联网 发布:it程序员累不累 编辑:程序博客网 时间:2024/06/08 01:03

 jsonReader: {
              root:"data",
              page: "page",
              total: "total",
              records: "record",
              repeatitems : false
            },

1.json 是一个比较好web 传送数据格式,jqgrid里面jsonreader 怎样解析json 数据



jQuery("#gridid").jqGrid({


... jsonReader :


{


root: "rows",  //数据模型


page: "page",//数据页码


total: "total",//数据总页码


records: "records",//数据总记录数


repeatitems: true,//如果设为false,则jqGrid在解析json时,会根据name(colmodel 指定的name)来搜索对应的数据元素(即可以json中元素可以不按顺序)


cell: "cell",//root 中row 行


id: "id",//唯一标识


userdata: "userdata",


subgrid: {


root:"rows", repeatitems: true, cell:"cell"


}


},


... });


示例json 数据格式;


 {


"total": "xxx", "page": "yyy", "records": "zzz",


"rows" : [


{"id" :"1", "cell" :["cell11", "cell12", "cell13"]},


{"id" :"2", "cell":["cell21", "cell22", "cell23"]},


... ]


}


示例2;可以设置自己json 标识


jQuery("#gridid").jqGrid({


... jsonReader :


{


root:"invdata",


page: "currpage",


total: "totalpages",


records: "totalrecords",


cell: "invrow", id: "invid" }, ...


});


返回json 格式:


{ "totalpages": "xxx",


"currpage": "yyy",


"totalrecords": "zzz",


"invdata" : [


{"invid" :"1", "invrow" :["cell11", "cell12", "cell13"]},


{"invid" :"2", "invrow" :["cell21", "cell22", "cell23"]},


... ] }


示例3:cell =“” ,id=“0”


jQuery("#gridid").jqGrid({


... jsonReader : {


root:"invdata",


page: "currpage",


total: "totalpages",


records: "totalrecords",


cell: "",


id: "0" },


... });


返回json格式:


{


"totalpages" : "xxx",


"currpage" : "yyy",


"totalrecords" : "zzz",


"invdata" : [


["1", "cell11", "cell12", "cell13"],


["2", "cell21", "cell22", "cell23"],


... ] }


示例4;设置repeatitems=false ,id=0 一般我都采用这个json格式 没有必要包括所有的数据,表示在colModel。因为我们的名字进行搜索,顺序并不需要在colModel的顺序相匹配


jQuery("#gridid").jqGrid({


... jsonReader : {


root:"invdata",


page: "currpage",


total: "totalpages",


records: "totalrecords",


repeatitems: false,


id: "0" },


... });


返回json 格式;


{


"totalpages" : "xxx",


"currpage" : "yyy",


"totalrecords" : "zzz",


"invdata" : [


{"invid" : "1","invdate":"cell11", "amount" :"cell12", "tax" :"cell13", "total" :"1234", "note" :"somenote"},


{"invid" : "2","invdate":"cell21", "amount" :"cell22", "tax" :"cell23", "total" :"2345", "note" :"some note"},


... ]


}


或者这样json 格式;


{


"totalpages" : "xxx",


"currpage" :"yyy",


"totalrecords" : "zzz",


"invdata" : [


{"invid" :"1", "invdate" : "cell11", "note" :"somenote"},


{"invid" :"2", "amount" : "cell22", "tax" :"cell23", "total" :"2345"},


... ]


}


示例5;当使用JSON数据命名的值(即repeatitems选项是假的),我们可以使用命名的点符号和索引符号。


jQuery("#gridid").jqGrid({


... colModel:[


{name:'name',label:'Name', width:150,editable: true},


{name:'id',width:50, sorttype:"int", editable: true,formatter:strongFmatter},


{name:'email',label:'Email', width:150,editable: true,formatter:'email'},


{name:'stock',label:'Stock', width:60, align:"center", editable: true,formatter:'checkbox',edittype:"checkbox"},


{name:'item.price',label:'Price', width:100, align:"right", editable: true,formatter:'currency'},


{name:'item.weight',label:'Weight',width:60, align:"right", editable: true,formatter:'number'},


{name:'ship',label:'Ship Via',width:90, editable: true,formatter:'select', edittype:"select",editoptions: value:"2:FedEx;1:InTime;3:TNT;4:ARK;5:ARAMEX"}},


{name:'note',label:'Notes', width:100, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"20"}} ],


... });


json 格式数据:


{


"page":"1",


"total":2,


"records":"13",


"rows":[


{"id":"12345","name":"Desktop Computers","email":"josh@josh.com",


"item":{"price":"1000.72", "weight": "1.22" }, "note": "note", "stock": "0","ship": "1"},


{"id":"23456","name":"<var>laptop</var>","note":"Long text ","stock":"yes",


"item":{"price":"56.72", "weight":"1.22"},"ship": "2"},


{"id":"34567","name":"LCD Monitor","note":"note3","stock":"true",


"item":{"price":"99999.72", "weight":"1.22"},"ship":"3"},


{"id":"45678","name":"Speakers","note":"note","stock":"false","ship":"4"}


]


}


如果你感觉上面满足不了你的需求,你可以自定jsonreader 各个属性的函数 ,jsonReader as Function 用法2 .userdata 用法


 示例;


jsonReader: { ... userdata: "userdata", ... }


返回json 格式:


{


total: "xxx",


page: "yyy",


records: "zzz",


userdata: {totalinvoice:240.00, tax:40.00},


rows : [


{id:"1", cell:["cell11", "cell12", "cell13"]},


{id:"2", cell:["cell21", "cell22", "cell23"]},


... ]


}


获取userdata:jQuery("grid_id").jqGrid('getGridParam', 'userData')
原创粉丝点击