- 浏览: 63096 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
u014549257:
...
Apache Mina: StreamIoHandler传输文件处理 -
至尊包:
想问一下,这个官网的列子如果要兼容3.0以下的版本要怎么处理? ...
Swipe Views (水平分页)
数据类型
xml, json, jsonp, array, xmlstring, jsonstring, script, function (…)
xml类型默认解析如下:
json数据默认解析如下:
XML数据
XML数据解析时有几个重要的元素:root, row, page, total, records, repeattimes, cell,id
举个例子:
使用js解析时:
如果XML结构如下:
js源码:
xml string
数据类型:json, jsonp, (jsonstring)
主要数据元素:root, page, total,records, row, cell, id, repeatitems,
默认的JS结构:
json的数据结构:
repeatitems的使用:
json:
json string
colModel:
json string:
jsonReader as function
此处的 obj 是从服务端服务器的response。
Array Data
相关的配置:datatype
colModel的相关选项: sorttype, datefmt
相关的方法:getRowData, delRowData, setRowData, addRowData, updateGridRows
js
语法:
1. jQuery("#grid_id").addRowData( rowid, data, position, srcrowid );
position: 增加数据的位置:first, last, before or after. 1) first:增加在最前面,2)last:增加在最后面,3) before”,“after” srcrowid参数的前面或后面。
srcrowid: 和position中的“before”,“after”配合使用。
2. jQuery("#grid_id").getRowData( rowid );
3. jQuery("#grid_id").delRowData( rowid );
4. jQuery("#grid_id").setRowData( rowid, data );
Function
User Data
xml
json
获取userdata的方法:
jQuery("grid_id").jqGrid('getGridParam', 'userData')
xml, json, jsonp, array, xmlstring, jsonstring, script, function (…)
xml类型默认解析如下:
jQuery("#gridid").jqGrid({ ... xmlReader : { root: "rows", row: "row", page: "rows>page", total: "rows>total", records : "rows>records", repeatitems: true, cell: "cell", id: "[id]", userdata: "userdata", subgrid: { root:"rows", row: "row", repeatitems: true, cell:"cell" } }, ... });
json数据默认解析如下:
jQuery("#gridid").jqGrid({ ... jsonReader : { root: "rows", page: "page", total: "total", records: "records", repeatitems: true, cell: "cell", id: "id", userdata: "userdata", subgrid: { root:"rows", repeatitems: true, cell:"cell" } }, ... });
XML数据
XML数据解析时有几个重要的元素:root, row, page, total, records, repeattimes, cell,id
举个例子:
...... <invoices> <request>true</request> ... <currentpage>1</currentpage> // page <totalpages>10</totalpages> //total <totalrecords>20</totalrecords> //records <result> // root <invoice asin='12345'> // id // 都是用 <invcell></invcell>, repeateitems: true <invcell>data1</invcell> // cell <invcell>data2</invcell> <invcell>data3</invcell> <invcell>data4</invcell> <invcell>data5</invcell> <invcell>data6</invcell> </invoice> ... </result> </invoices>
使用js解析时:
jQuery("#gridid").jqGrid({ ... xmlReader: { root:"result", row:"invoice", page:"invoices>currentpage", total:"invoices>totalpages", records:"invoices>totalrecords", repeatitems:true, cell:"invcell", id : "[asin]" }, ... });
如果XML结构如下:
... <invoices> <request>true</request> ... <currentpage>1</currentpage> <totalpages>10</totalpages> <totalrecords>20</totalrecords> <result> <invoice> // 以下TAG不同,这repeatitems: false <asin>12345</asin> <invoiceno>data1</invoiceno> <invoicedate>data2</invoicedate> <invoiceamount>data3</invoiceamount> <invoicetax>data4</invoicetax> <invoicetotal>data5</invoicetotal> <notes>data6</notes> </invoice> ... </result> </invoices>
js源码:
jQuery("#gridid").jqGrid({ ... xmlReader: { root:"result", row:"invoice", page:"invoices>currentpage", total:"invoices>totalpages", records:"invoices>totalrecords", repeatitems:false, id : "asin" }, ... }); and our colModel from the example should look like this: <code javascript> jQuery("#gridid").jqGrid({ ... // 作个XML TAG和 colModel的映射关系 // 如果不作映射关系,name的值必须是xml里的tag名称。 colModel :[ {name:'invid', index:'invid', width:55, xmlmap:"invoiceno"}, {name:'invdate', index:'invdate', width:90, xmlmap:"invoicedate"}, {name:'amount', index:'amount', width:80, align:'right', xmlmap:"invoiceamount"}, {name:'tax', index:'tax', width:80, align:'right', xmlmap:"invoicetax"}, {name:'total', index:'total', width:80, align:'right', xmlmap:"invoicetotal"}, {name:'note', index:'note', width:150, sortable:false, xmlmap:"notes"} ], xmlReader: { root:"result", row:"invoice", page:"invoices>currentpage", total:"invoices>totalpages", records:"invoices>totalrecords", repeatitems:false, id : "asin" }, ... });
xml string
<script> var mystr = "<?xml version='1.0' encoding='utf-8'?> <invoices> <rows> <row> <cell>data1</cell> <cell>data2</cell> <cell>data3</cell> <cell>data4</cell> <cell>data5</cell> <cell>data6</cell> </row> </rows> </invoices>"; jQuery(document).ready(function(){ jQuery("#list").jqGrid({ datatype: 'xmlstring', datastr : mystr, colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'], colModel :[ {name:'invid', index:'invid', width:55, sorttype:'int'}, {name:'invdate', index:'invdate', width:90, sorttype:'date', datefmt:'Y-m-d'}, {name:'amount', index:'amount', width:80, align:'right', sorttype:'float'}, {name:'tax', index:'tax', width:80, align:'right', sorttype:'float'}, {name:'total', index:'total', width:80, align:'right', sorttype:'float'}, {name:'note', index:'note', width:150, sortable:false} ], pager: '#pager', rowNum:10, viewrecords: true, caption: 'My first grid' }); }); </script>
数据类型:json, jsonp, (jsonstring)
主要数据元素:root, page, total,records, row, cell, id, repeatitems,
默认的JS结构:
jQuery("#gridid").jqGrid({ ... jsonReader : { root: "rows", page: "page", total: "total", records: "records", repeatitems: true, cell: "cell", 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"]}, ... ] }
repeatitems的使用:
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 string
colModel:
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 string:
{ "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 as function
jsonReader: { repeatitems: false, id: "Id", root: function (obj) { return obj; }, page: function (obj) { return 1; }, total: function (obj) { return 1; }, records: function (obj) { return obj.length; } }
此处的 obj 是从服务端服务器的response。
Array Data
相关的配置:datatype
colModel的相关选项: sorttype, datefmt
相关的方法:getRowData, delRowData, setRowData, addRowData, updateGridRows
localReader = { root: "rows", page: "page", total: "total", records: "records", repeatitems: false, cell: "cell", id: "id", userdata: "userdata", subgrid: {root:"rows", repeatitems: true, cell:"cell"} }
js
... <script> jQuery(document).ready(function(){ jQuery("#list").jqGrid({ datatype: 'clientSide', colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'], colModel :[ {name:'invid',index:'invid', width:55, sorttype:'int'}, {name:'invdate',index:'invdate', width:90, sorttype:'date', datefmt:'Y-m-d'}, {name:'amount',index:'amount', width:80, align:'right',sorttype:'float'}, {name:'tax',index:'tax', width:80, align:'right',sorttype:'float'}, {name:'total',index:'total', width:80,align:'right',sorttype:'float'}, {name:'note',index:'note', width:150, sortable:false} ], pager: '#pager', rowNum:10, viewrecords: true, caption: 'My first grid' }); ... }); </script>
语法:
1. jQuery("#grid_id").addRowData( rowid, data, position, srcrowid );
position: 增加数据的位置:first, last, before or after. 1) first:增加在最前面,2)last:增加在最后面,3) before”,“after” srcrowid参数的前面或后面。
srcrowid: 和position中的“before”,“after”配合使用。
<script> ... var myfirstrow = {invid:"1", invdate:"2007-10-01", note:"note", amount:"200.00", tax:"10.00", total:"210.00"}; jQuery("#list").addRowData("1", myfirstrow); ... </script>
2. jQuery("#grid_id").getRowData( rowid );
jQuery("#list").getRowData( "1" ); 返回的数据: {invid:"1", invdate:"2007-10-01", note:"note", amount:"200.00", tax:"10.00", total:"210.00"};
3. jQuery("#grid_id").delRowData( rowid );
jQuery("#list").delRowData( "2" );
4. jQuery("#grid_id").setRowData( rowid, data );
jQuery("#list").setRowData( "1", { tax:"5", total:"205" });
Function
<script type="text/javascript"> ... jQuery(document).ready(function(){ jQuery("#list").jqGrid({ datatype: function(postdata) { jQuery.ajax({ url: 'example.php', data:postdata, dataType:"xml", complete: function(xmldata,stat){ if(stat=="success") { var thegrid = jQuery("#list")[0]; thegrid.addXmlData(xmldata.responseXML); } } }); }, colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'], colModel :[ {name:'invid', index:'invid', width:55}, {name:'invdate', index:'invdate', width:90}, {name:'amount', index:'amount', width:80, align:'right'}, {name:'tax', index:'tax', width:80, align:'right'}, {name:'total', index:'total', width:80, align:'right'}, {name:'note', index:'note', width:150, sortable:false} ], pager: '#pager', rowNum:10, rowList:[10,20,30], sortname: 'invid', sortorder: 'desc', viewrecords: true, caption: 'My first grid' }); }); ... </script>
User Data
jsonReader: { ... userdata: "userdata", ... }
xml
<invoices> <request>true</request> <userdata name="totalinvoice"> 240.00 </userdata> // userdata <userdata name="tax"> 40.00</userdata> // userdata ... <result> <row> <cell>data1</cell> <cell>data2</cell> <cell>data3</cell> <cell>data4</cell> <cell>data5</cell> <cell>data6</cell> </row> ... </result> </invoices>
json
{ total: "xxx", page: "yyy", records: "zzz", userdata: {totalinvoice:240.00, tax:40.00}, // userdata rows : [ {id:"1", cell:["cell11", "cell12", "cell13"]}, {id:"2", cell:["cell21", "cell22", "cell23"]}, ... ] }
获取userdata的方法:
jQuery("grid_id").jqGrid('getGridParam', 'userData')
发表评论
-
jqGrid的使用笔记:5. 事件
2013-04-14 21:53 75471. 事件举例: var lastSe ... -
jqGrid的使用笔记:3. colModel API
2013-03-24 20:22 2301colmodel属性 colModel定义列属性, 语法是: ... -
jqGrid的使用笔记:2. 基本的Grid
2013-03-24 20:22 3441基本的方法 jQuery("#grid_id&quo ... -
jqGrid 的使用笔记:1. 开始
2013-03-22 21:26 1333来源 官方下载地址http://www.trirand.com ...
相关推荐
jqGrid 提供了丰富的特性,包括数据分页、排序、过滤、编辑、导出等功能,使其成为 Web 应用程序中展示和操作大量数据的理想选择。 ### 1. 安装 jqGrid 首先,我们需要在项目中引入 jqGrid 的 CSS 和 JavaScript ...
在 jqGrid 中,我们可以使用一系列方法来实现对表格数据的编辑操作。以下是关于 jqGrid 行编辑方法的详细说明: 1. **editRow**: 此方法用于将指定行切换到编辑模式。调用格式为 `editRow(rowid, keys, oneditfunc,...
2. 数据操作:提供排序、筛选、分页、编辑、新增和删除数据的功能。用户可以通过点击表头进行排序,使用内置的搜索工具进行复杂查询,或者通过操作按钮执行编辑和删除操作。 3. 自定义功能:jqGrid允许开发者自定义...
jqGrid 是一个强大的 jQuery 插件,用于创建交互式的表格,它允许用户在网页上轻松地展示、操作和检索数据。以下是对 jqGrid 的详细解释: 1. **安装jqGrid**: 安装 jqGrid 非常简单,只需要将相关的 CSS 和 ...
7. **AJAX通信**:jqGrid默认使用AJAX进行异步数据交互。你需要配置`url`参数指定服务器端处理请求的URL,并可能需要定义`serializeGridData`函数来序列化发送到服务器的数据。 8. **CSS和jQuery特效**:由于标签中...
jqGrid还支持行选中、多选以及行内编辑模式,这对于数据操作特别有用。在行内编辑模式下,用户可以直接在表格中修改数据,点击保存后,这些更改会被自动发送到服务器进行处理。 在外观定制方面,jqGrid允许通过CSS...
jqGrid是一款功能强大的JavaScript表格插件,用于在Web页面中展示和操作...通过研究这些资源,开发者可以更好地理解jqGrid的事件处理、自定义行为、样式调整以及数据操作等核心概念,提升在Web开发中的表格管理能力。
jQuery的jqGrid是一个强大的数据网格插件,用于展示和操作大量结构化数据。本篇学习笔记将详细介绍如何使用jqGrid实现分页和搜索功能。 首先,要使用jqGrid,你需要在HTML页面中引入必要的CSS和JavaScript文件。...
4. **交互性**:JqGrid支持查询、修改、分组等操作。在本示例中,它还实现了查询、分组和一些基础的编辑功能。 此外,JqGrid还提供了丰富的搜索和过滤选项,通过`searchoptions`和`search`属性可以定义列的搜索行为...
jqGrid 是一个强大的 jQuery 插件,用于创建交互式的表格,具有数据检索、排序、过滤、编辑等多种功能。本篇文章将深入探讨 jqGrid 的进阶使用,特别关注如何在浏览导航栏添加自定义按钮。 首先,jqGrid 的基本结构...
3. **jqgrid学习笔记网搜和个人经验1.pdf**:作者通过网络搜集和自己的实践,整理出的学习笔记,包含了常见问题解决方案和实践经验分享,对于初学者极具参考价值。 **总结** jgGrid作为一个强大的JavaScript表格...
在本篇Java中jqGrid的学习笔记整理中,我们将聚焦于jqGrid与后台Java服务的数据交互。jqGrid是一款强大的JavaScript库,用于创建动态、交互式的表格,而这里的进阶篇(二)将涉及到如何通过Java后端来提供数据支持。 ...
4. **数据绑定**:动态表格通常与后端数据源结合,可以使用Ajax请求获取数据,然后将数据填充到表格中。`$.ajax()`或`$.getJSON()`是常用的异步请求函数。 5. **事件监听**:jQuery的`.on()`方法允许我们为元素绑定...
MongoDB学习笔记(二)深入讲解了如何通过Samus驱动进行基本数据操作。Samus驱动是MongoDB的Java驱动程序,它提供了与MongoDB交互的API。读者将学习如何创建连接、执行查询、插入、更新和删除数据,以及如何处理集合和...
模板集成了许多第三方插件,如jqGrid用于数据表的分页和排序,Chart.js用于图表展示,iCheck用于复选框和单选按钮的美化等。这些插件的整合增强了系统的功能性和实用性。 7. **代码结构与可维护性**: V2.0版本...