您当前的位置: 首页 > 

杨林伟

暂无认证

  • 1浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

04jqGrid - 数据传输结构

杨林伟 发布时间:2019-04-23 20:40:02 ,浏览量:1

jqGrid可支持的数据类型:xml、json、jsonp、local or clientSide、xmlstring、jsonstring 、script、function (…)

Json数据

需要定义jsonReader来跟服务器端返回的数据做对应,其默认值:

{
    "cell": "cell",
    "id": "id",
    "page": "page",
    "records": "records",
    "repeatitems": true,
    "root": "rows",
    "subgrid": {
        "cell": "cell",
        "repeatitems": true,
        "root": "rows"
    },
    "total": "total",
    "userdata": "userdata"
}

这样服务器端返回的数据格式:

{
    "page": "yyy",
    "records": "zzz",
    "rows": [
        {
            "cell": [
                "cell11",
                "cell12",
                "cell13"
            ],
            "id": "1"
        },
        {
            "cell": [
                "cell21",
                "cell22",
                "cell23"
            ],
            "id": "2"
        }
    ],
    "total": "xxx"
}

jsonReader的属性 在这里插入图片描述

自定义数据解析
jQuery("#gridid").jqGrid({  

...  

	jsonReader : {  

		root:"invdata",  

		page: "currpage",  

		total: "totalpages",  

		records: "totalrecords",  

		cell: "invrow"  

	},  

...  

}); 

	totalpages: "xxx",   

	currpage: "yyy",  

	totalrecords: "zzz",  

	invdata : [  

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

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

		...  

	]  
		

repeatitems :指明每行的数据是可以重复的,如果设为false,则会从返回的数据中按名字来搜索元素,这个名字就是colModel中的名字。

jsonReader : {  

	root:"invdata",  

	page: "currpage",  

	total: "totalpages",  

	records: "totalrecords",  

	repeatitems: false,  

	id: "0"  

}

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"},  

	...  

] 
		

此例中,id属性值为“invid”。 一旦当此属性设为false时,我们就不必把所有在colModel定义的name值都赋值。因为是按name来进行搜索元素的,所以他的排序也不是按colModel中指定的排序结果。

用户数据(user data) 在某些情况下,我们需要从服务器端返回一些参数但并不想直接把他们显示到表格中,而是想在别的地方显示,那么我们就需要用到userdata标签

jsonReader: {  

	...  

	userdata: "userdata",  

	...  

} 

{   

	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"]},   

		...   

	]   

}

在客户端我们可以有下面两种方法得到这些额外信息:

  1. jQuery(“grid_id”).getGridParam(‘userData’)

  2. jQuery(“grid_id”).getUserData()

  3. jQuery(“grid_id”).getUserDataItem( key )

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.2200s