jqgrid delfunc设置为true后怎么删除

jqGrid(6)
本篇文章只介绍jqGrid删除操作,希望能帮到大家~!有不正确的请指出!谢谢!
本篇文章代码在以下一篇代码基础上修改:
jqGrid显示:
PS:行id冲突(行编辑有需要看看):
演示效果:
核心代码:
$(document).ready(function () {
$.ajax({//先用ajax与后台交互获取要显示的数据
url: &/userFindAction&,//与后台交互的url
type: &GET&,//ajax提交方式
dataType: &json&,//从服务器端返回的数据类型
success: function (data) {
//data是从服务器返回的json对象,其中result是我要显示的数据内容
window.datas = data.
//设置content-pager高度
$(&.content-pager&).height($(window).height() - 400);
//数据成功拿到后就渲染jqgrid
// 配置jqGrid的属性
jQuery(&#jqGrid01&).jqGrid({
data: datas,//从服务器拿来的数据
datatype: &local&,//显示数据的方式,因为通过ajax拿到数据了,所以是本地的
jsonReader: {//描述json 数据格式的数组
repeatitems: false// 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素(即可以json中元素可以不按顺序);而所使用的name是来自于colModel中的name设定。
height: $('.content-pager').height(), // Auto height step 2,
rowNum: 10,//在grid上初始显示记录条数
rowList: [10, 20, 30],//一个下拉选择框,用来改变显示记录数
colNames: ['userId', 'userName', 'accountName', 'accountPassword', 'roleType', 'schoolName', 'schoolClassName', 'active',''],//列显示名称,是一个数组对象
colModel: [//配置显示的列属性
对应后台返回数据datas中的userId
hidden:控制该列不显示
{name: 'userId', index: 'userId', width: 60,hidden:true},
对应后台返回数据datas中的userName
editable:定义字段是否可编辑
name: 'userName',
index: 'userName',
width: 100,
editable: true,
editoptions: {size: &20&, maxlength: &30&}//当执行修改和新增的操作时,会显示输入框,输入框的配置
对应后台返回数据datas中的accountName
editable:定义字段是否可编辑
name: 'accountName',
index: 'accountName',
width: 100,
editable: true,
editoptions: {size: &20&, maxlength: &30&}
对应后台返回数据datas中的accountPassword
search:定义此列是否可以作为搜索列
注:由于不想让用户看到密码,所以将改列的内容改为一个重置按钮,点击可以修改密码
name: 'accountPassword',
index: 'accountPassword',
width: 120,
search:false
对应后台返回数据datas中的roleType
editrules:设置编辑字段的控件的规则
edittype:控件该字段在修改或者新增时类型 select为下拉菜单
name: 'roleType',
index: 'roleType',
width: 80,
editable: true,
editrules: true,
edittype: &select&,
对应后台返回数据datas中的schoolName
name: 'schoolName',
index: 'schoolName',
width: 150,
editable: true,
editrules: true,
edittype: &select&,
editoptions: {
dataEvents: [//给当前控件追加事件处理
type: 'change',
//下拉选择的时候
fn: function (e) {
//触发方法
//获取当前下拉框的id名字(这是点击编辑按钮时才需要的,因为点击编辑按钮后,schoolName的下拉框会变成1_schoolName,其中”1“是行号)
var itemName = this.
var selectNum = itemName.match(/^\d+/);//(这是点击编辑按钮时才需要的)将id中的数字获取出来,编辑时就会对id为selectNum的行进行操作
var schoolName =this. //获取选中的学校名称
getSchoolClass(selectNum,schoolName); //调用获取班级data的方法
对应后台返回数据datas中的schoolClassName
value:在修改或者新增时下拉框显示的数据
name: 'schoolClassName',
index: 'schoolClassName',
width: 150,
editable: true,
edittype: &select&,
editoptions: {value: {'请选择班级': '请选择班级'}}
该字段是在前端自定义的字段
sortable: 设置该字段是否进行排序
name: 'active', index: 'active', width: 60,sortable : false
改列显示编辑、保存、重置按钮,在编辑操作会用到
name : 'act',index : 'act',width : 75,sortable : false,search:false
pager: &#jqGridPager01&,//定义翻页用的导航栏,必须是有效的html元素(即定义的div块)。
viewrecords: true,//定义是否要显示总记录数
caption: &User Management&,//表格名称
hidegrid: false,//启用或者禁用控制表格显示、隐藏的按钮,只有当caption 属性不为空时起效
multiselect: true,//定义是否可以多选
altRows: true,
rownumbers: true,//如果为ture则会在表格左边新增一列,显示行顺序号
当从服务器返回响应时执行的方法
----我的理解是加载表格完成后执行的方法----
loadComplete: function () {
//获取学校data
getSchool();
//获取roleType
getRole();
//设置Reset按钮
setReset();
//设置最后一列的修改按钮
setEdit();
// 配置导航条属性
jQuery(&#jqGrid01&).navGrid('#jqGridPager01', {
//设置为false需要自己重新重新该方法
edit: false,
add: false,
del: false,
search: true
},{},{},{},{multipleSearch:true})
增加自定义按钮——add按钮
参数1:导航条div名称
参数2:按钮名称,可以为空
参数3:按钮的图标,string类型,必须为jquery UI theme图标
onClickButton:点击该按钮时候的操作
.navButtonAdd('#jqGridPager01', {
caption: &&, buttonicon: &ui-icon-circle-plus&, onClickButton: function () {
//增加一行操作
addRows();
position: &first&//first或者last,按钮位置
.navButtonAdd('#jqGridPager01', {
caption: &&, buttonicon: &ui-icon-trash&, onClickButton: function () {
//删除一行操作
removeRows();
position: &first&
.navSeparatorAdd(&#jqGridPager01&, {sepclass: &ui-separator&, sepcontent: ''});
$(&#jqGrid01&).jqGrid('setGridWidth', $(&.content-pager&).width(), true);
error: function () {
removeRows()就是删除操作调用的方法
.navButtonAdd('#jqGridPager01', {
caption: &&, buttonicon: &ui-icon-trash&, onClickButton: function () {
//删除一行操作
removeRows();
position: &first&
removeRows();
function removeRows(){
//alert(&really delete the selected item?&);
//获取多行的id,是个Array
var selectedRowIds = $(&#jqGrid01&).jqGrid(&getGridParam&, &selarrrow&);
//判断是否为空
if(selectedRowIds==&&){
window.wxc.xcConfirm(&请选择要删除的行!&, window.wxc.);
&是否删除用户&;
var option = {
title: &信息&,
btn: parseInt(&0011&,2),
onOk: function(){
//取出本地user数据中的对应行Id的数据userId,并且放到一个数据中
var len = selectedRowIds.
var userId =new Array();
for (var i = 0; i & i++) {
userId[i]=datas[selectedRowIds[i]-1].userId;
//post userId组到后台,让后台删除(PS:这里是我的逻辑实现,我的后台是对userId进行删除的)
type: &post&,
url: &/userRemoveAction&,
data: {userId:userId},
dataType: &json&,
success: function (data) {
//判断后台是否删除成功
//如果成功则调用jqGrid的delRowData方法逐个删除行id
if(data.success==1){
for (var i = 0; i & i++) {
$(&#jqGrid01&).jqGrid(&delRowData&, selectedRowIds[0]);
window.wxc.xcConfirm(txt, &custom&, option);
可能有人看到这段代码会很不解,为什么要这么删除:
&span style=&white-space:pre&&
//判断后台是否删除成功
//如果成功则调用jqGrid的delRowData方法逐个删除行id
if(data.success==1){
for (var i = 0; i & i++) {
$(&#jqGrid01&).jqGrid(&delRowData&, selectedRowIds[0]);
}解释博客:
相关文章:
参考文章:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:19402次
排名:千里之外
原创:21篇
评论:22条
(5)(2)(1)(1)(9)(1)(3)jqgrid|LOFTER(乐乎) - 记录生活,发现同好
LOFTER for ipad —— 记录生活,发现同好
&nbsp&nbsp被喜欢
&nbsp&nbsp被喜欢
{list posts as post}
{if post.type==1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type==2}
{if post.type == 3}
{if !!post.image}
{if post.type == 4}
{if !!post.image}
{if !!photo.labels && photo.labels.length>0}
{var wrapwidth = photo.ow < 500?photo.ow:500}
{list photo.labels as labs}
{var lbtxtwidth = Math.floor(wrapwidth*(labs.ort==1?labs.x:(100-labs.x))/100)-62}
{if lbtxtwidth>12}
{if !!labs.icon}
{list photos as photo}
{if photo_index==0}{break}{/if}
品牌${make||'-'}
型号${model||'-'}
焦距${focalLength||'-'}
光圈${apertureValue||'-'}
快门速度${exposureTime||'-'}
ISO${isoSpeedRatings||'-'}
曝光补偿${exposureBiasValue||'-'}
镜头${lens||'-'}
{if data.msgRank == 1}{/if}
{if data.askSetting == 1}{/if}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post_index < 3}
{if post.type == 1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
{if drlist.length>0}
更多相似达人:
{list drlist as dr}{if drlist.length === 3 && dr_index === 0}、{/if}{if drlist.length === 3 && dr_index === 1}、{/if}{if drlist.length === 2 && dr_index === 0}、{/if}{/list}
暂无相似达人,
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
this.p={ currentPage:1,pageNewMode:true,isgooglead3:false,ishotrecompost:false,visitorId:0, first:'',tag:'jqgrid',recommType:'new',recommenderRole:0,offset:9,type:0,isUserEditor:0,};JQGrid的主键问题,当删除-jqgrid,jqgrid-asp.net-CodeGo.net
JQGrid的主键问题,当删除
我有我行作为隐藏字段主键在我的JQGrid的。这就是所谓的“用户ID”
colNames: ['UserId', "Details" ...],
colModel: [{ name: 'UserId', index: 'UserId', editable: false, hidden: true },
{ name: 'Details', index: 'Details', editable: true, editactioniconscolumn: true },
我得到的工作创建和更新情况,但我有一个问题与删除
删除时,我得到一个Id网格的行回到控制器,而不是UserId,
我可以把所有UserId's在网格的id,这就是我目前做是为了删除的工作,但我想知道有没有什么办法让我隐藏UserId获得发布的,而不是网格的行ID。
本文地址 :CodeGo.net/312275/
-------------------------------------------------------------------------------------------------------------------------
1. 您可以将您在许多方面:
如果从价值UserId列是唯一的页面上,可以标识行可以加key:true属性设置为UserId在列定义colModel。
你beforeSubmit或onclickSubmit事件来修改postdata并添加将被发送到服务器。看到这里的一个例子。
使用delData属性完全一样editData我在这里描述。
使用serializeDelData事件。在这里看到这个。
本文标题 :JQGrid的主键问题,当删除
本文地址 :CodeGo.net/312275/
Copyright (C) 2014 CodeGo.netjqGrid 各种参数 详解 - 挽星 - 博客园
JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信。
&是一个在线的演示项目。在这里,可以知道jqgrid可以做什么事情。下面是转自其他人blog的一个学习资料,与其说是学习资料,说成查询帮助文档更加合适。
jqGrid学习之 ------------- 安装
jqGrid安装很简单,只需把相应的css、js文件加入到页面中即可。&按照官网文档:
/myproject/css/&&&&&&&&&&&& ui.jqgrid.css&&&&&&&&&&&& /ui-lightness/&&&&&&&&&&&&&&&&&& /images/&&&&&&&&&&&&&&&&&& jquery-ui-1.7.2.custom.css
&/myproject/js/&&&&&&&&&&&& /i18n/&&&&&&&&&&&&&&&&&& grid.locale-bg.js&&&&&&&&&&&&&&&&&& list of all language files&&&&&&&&&&&&&&&&&& &.&&&&&&&&&&&& Changes.txt&&&&&&&&&&&& jquery-1.3.2.min.js&&&&&&&&&&&& jquery.jqGrid.min.js
在页面中写法:
&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&XHTML&1.0&Strict//EN"&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&&&
&html&xmlns="http://www.w3.org/1999/xhtml"&xml:lang="en"&lang="en"&&&
&meta&http-equiv="Content-Type"&content="text/&charset=utf-8"&/&&&
&title&My&First&Grid&/title&&&
&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui-lightness/jquery-ui-1.7.1.custom.css"&/&&&
&link&rel="stylesheet"&type="text/css"&media="screen"&href="js/src/css/ui.jqgrid.css"&/&&&
&link&rel="stylesheet"&type="text/css"&media="screen"&href="js/src/css/jquery.searchFilter.css"&/&&&
html,&body&{&&
&&&margin:&0;&&
&&&&padding:&0;&&
&&&&font-size:&75%;&&
&/style&&&
&script&src="js/jquery-1.3.2.min.js"&type="text/javascript"&&/script&&&
&script&src="js/src/grid.loader.js"&type="text/javascript"&&/script&&&
需要说明的是,jquery-ui的字体大小与jqgrid字体大小不一致,故需要在页面上在加上一段&style来指定页面上文字大小。
jqGrid皮肤
从3.5版本开始,jqGrid完全支持jquery UI的theme。我们可以从/themeroller/下载我们所需要的theme。当然,你也可以编辑自己的theme。jqGrid&也并不需要把所有的css文件都引入进来,只需导入核心css文件&ui.theme.css&& 以及&ui.core.css&即可,文件位于目录development-bundle/themes下。
jqGrid原理
jqGrid是典型的B/S架构,服务器端只是提供数据管理,客户端只提供数据显示。换句话说,jqGrid可以以一种更加简单的方式来展现你数据库的信息,而且也可以把客户端数据传回给服务器端。&对于jqGrid我们所关心的就是:必须有一段代码把一些页面信息保存到数据库中,而且也能够把响应信息返回给客户端。jqGrid是用ajax来实现对请求与响应的处理。
jqGrid参数
获取数据的地址
从服务器端返回的数据类型,默认xml。可选类型:xml,local,json,jsonnp,script,xmlstring,jsonstring,clientside
ajax提交方式。POST或者GET,默认GET
列显示名称,是一个数组对象
常用到的属性:name&列显示的名称;index&传到服务器端用来排序用的列名称;width&列宽度;align&对齐方式;sortable&是否可以排序
定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置
在grid上显示记录条数,这个参数是要被传递到后台
一个下拉选择框,用来改变显示记录数,当选择时会覆盖rowNum参数传递到后台
默认的排序列。可以是列名称或者是一个数字,这个参数会被提交到后台
viewrecords
定义是否要显示总记录数
ajaxGridOptions[a1]&
对ajax参数进行全局设置,可以覆盖ajax事件
ajaxSelectOptions[a2]&
对ajax的select参数进行全局设置
用来指定行显示的css,可以编辑自己的css文件,只有当altRows设为&ture时起作用
ui-priority-secondary
设置表格&zebra-striped&值
autoencode
对url进行编码
如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth
cellLayout
定义了单元格padding + border&宽度。通常不必修改此值。初始值为
启用或者禁用单元格编辑功能
cellsubmit
定义了单元格内容保存位置
单元格提交的url
xmlstring或者jsonstring
deselectAfterSort
只有当datatype为local时起作用。当排序时不选择当前行
表格中文字的显示方向,从左向右(ltr)或者从右向左(rtr)
定义对form编辑时的url
emptyrecords
当返回的数据行数为0时显示的信息。只有当属性&viewrecords&设置为ture时起作用
ExpandColClick
当为true时,点击展开行的文本时,treeGrid就能展开或者收缩,不仅仅是点击图片
ExpandColumn
指定那列来展开tree grid,默认为第一列,只有在treeGrid为true时起作用
footerrow[a3]&
当为true时,会在翻页栏之上增加一行
当为ture时,调整列宽度不会改变表格的宽度。当shrinkToFit&为false时,此属性会被忽略
定义当前表格的状态:'visible' or 'hidden'
构造一行数据后添加到grid中,如果设为true则是将整个表格的数据都构造完成后再添加到grid中,但treeGrid, subGrid, or afterInsertRow&不能用
表格高度,可以是数字,像素值或者百分比
hiddengrid
当为ture时,表格不会被显示,只显示表格的标题。只有当点击显示表格的那个按钮时才会去初始化表格数据。
启用或者禁用控制表格显示、隐藏的按钮,只有当caption&属性不为空时起效
当为false时mouse hovering会被禁用
jsonReader
描述json&数据格式的数组
只读属性,定义了总页数
只读属性,定义了最后排序列的索引,从0开始
如果为ture则数据只从服务器端抓取一次,之后所有操作都是在客户端执行,翻页功能会被禁用
当请求或者排序时所显示的文字内容
Loading....
当执行ajax请求时要干什么。disable禁用ajax执行提示;enable默认,当执行ajax请求时的提示;&block启用Loading提示,但是阻止其他操作
只有在multiselect设置为ture时起作用,定义使用那个key来做多选。shiftKey,altKey,ctrlKey
multiboxonly
只有当multiselect = true.起作用,当multiboxonly&为ture时只有选择checkbox才会起作用
multiselect
定义是否可以多选
multiselectWidth
当multiselect为true时设置multiselect列宽度
设置初始的页码
指定分页栏的位置
是否显示翻页按钮
是否显示跳转页面的输入框
当前页信息
Default valuesprmNames: {page:&page&,rows:&rows&, sort: &sidx&,order: &sord&, search:&_search&, nd:&nd&, npage:null}&当参数为null时不会被发到服务器端
此数组内容直接赋值到url上,参数类型:{name1:value1&}
只读属性,定义了grid中确切的行数。通常情况下与records属性相同,但有一种情况例外,假如rowNum=15,但是从服务器端返回的记录数是20,那么records值是20,但reccount值仍然为15,而且表格中也只显示15条记录。
定义了记录信息的位置:&left, center, right
只读属性,定义了返回的记录数
recordtext
显示记录数信息。{0}&为记录数开始,{1}为记录数结束。viewrecords为ture时才能起效,且总记录数大于0时才会显示此信息
resizeclass
定义一个class到一个列上用来显示列宽度调整时的效果
一个数组用来调整表格显示的记录数,此参数值会替代rowNum参数值传给服务器端。
rownumbers
如果为ture则会在表格左边新增一列,显示行顺序号,从1开始递增。此列名为'rn'.
rownumWidth
如果rownumbers为true,则可以设置column的宽度
只读属性,只用在编辑模式下保存数据
创建一个动态滚动的表格,当为true时,翻页栏被禁用,使用垂直滚动条加载数据,且在首次访问服务器端时将加载所有数据到客户端。当此参数为数字时,表格只控制可见的几行,所有数据都在这几行中加载
scrollOffset
设置垂直滚动条宽度
scrollrows
当为true时让所选择的行可见
只读属性,用来存放当前选择的行
只读属性,最后选择行的id
shrinkToFit
此属性用来说明当初始化列宽度时候的计算类型,如果为ture,则按比例初始化列宽度。如果为false,则列宽度使用colModel指定的宽度
是否可排序
排序列的名称,此参数会被传到后台
排序顺序,升序或者降序(asc or desc)
是否使用suggrid
subGridModel
subgrid模型
subGridType
如果为空则使用表格的dataType
subGridUrl
加载subgrid数据的url,jqGrid会把每行的id值加到url中
subGridWidth
subgrid列的宽度
表格的工具栏。数组中有两个值,第一个为是否启用,第二个指定工具栏位置(相对于body layer),如:[true,&both&]&。工具栏位置可选值:&top&,&bottom&, &both&.&如果工具栏在上面,则工具栏id为&t_&+表格id;如果在下面则为&&tb_&+表格id;如果只有一个工具栏则为&&t_&+表格id
[false,'']
只读属性,计算加载数据的时间。目前支持xml跟json数据
treedatatype
数据类型,通常情况下与datatype相同,不会变
启用或者禁用treegrid模式
treeGridModel
treeGrid所使用的方法
树的图标,默认值:{plus:'ui-icon-triangle-1-e',minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'}
treeReader
扩展表格的colModel且加在colModel定义的后面
tree_root_level
r oot元素的级别,
从request中取得的一些用户信息
userDataOnFooter
当为true时把userData放到底部,用法:如果userData的值与colModel的值相同,那么此列就显示正确的值,如果不等那么此列就为空
viewrecords
是否要显示总记录数
viewsortcols
定义排序列的外观跟行为。数据格式:[false,'vertical',true].第一个参数是说,是否都要显示排序列的图标,false就是只显示&当前排序列的图标;第二个参数是指图标如何显示,vertical:排序图标垂直放置,horizontal:排序图标水平放置;第三个参数指单击功&能,true:单击列可排序,false:单击图标排序。说明:如果第三个参数为false则第一个参数必须为ture否则不能排序
如果设置则按此设置为主,如果没有设置则按colModel中定义的宽度计算
对xml数据结构的描述
Jqgrid学习 -------ColModel API
ColModel 是jqGrid里最重要的一个属性,设置表格列的属性。
left, center, right.
设置列的css。多个class之间用空格分隔,如:'class1 class2'&。表格默认的css属性是ui-ellipsis
empty string
&/&, &-&, and &.&都是有效的日期分隔符。y,Y,yyyy&年YY, yy&月m,mm for monthsd,dd&日.
ISO Date (Y-m-d)
查询字段的默认值
单元格是否可编辑
editoptions
编辑的一系列选项。{name:&__department_id&,index:&__department_id&,width:200,editable:true,edittype:&select&,editoptions: {dataUrl:&${ctx}/admin/deplistforstu.action&}},这个是演示动态从服务器端获取数据。
编辑的规则{name:&age&,index:&age&, width:90,editable:true,editrules: {edithidden:true,required:true,number:true,minValue:10,maxValue:100}},设定&年龄的最大值为100,最小值为10,而且为数字类型,并且为必输字段。
可以编辑的类型。可选值:text, textarea, select, checkbox, password, button, image and file.
列宽度是否要固定不可变
formoptions
对于form进行编辑时的属性设置
formatoptions
对某些列进行格式化的设置
对列进行格式化时设置的函数名或者类型
{name:&sex&,index:&sex&, align:&center&,width:60,editable:true,edittype:&select&,editoptions: {value:&0:待定;1:男;2:女&},formatter:function(cellvalue, options, rowObject){var temp = &&img src=&${ctx}/jquery-ui-1.7.2.custom/css/img/&if(cellvalue==1){temp = temp +&user-white.png&;} else if(cellvalue==2){temp = temp +&user-white-female.png&;} else {temp = temp + &user-silhouette.png&;}temp = temp + && border=&0&&/&&}},//返回性别的图标。
是否显示或者隐藏此列
在初始化表格时是否要隐藏此列
索引。其和后台交互的参数为sidx
定义了返回的json数据映射
当从服务器端返回的数据中没有id时,将此作为唯一rowid使用只有一个列可以做这项设置。如果设置多于一个,那么只选取第一个,其他被忽略
如果colNames为空则用此值来作为列的显示名称,如果都没有设置则使用name&值
表格列的名称,所有关键字,保留字都不能作为名称使用包括subgrid, cb and rn.
是否可以被resizable
在搜索模式下,定义此列是否可以作为搜索列
searchoptions
设置搜索参数
是否可排序
用在当datatype为local时,定义搜索列的类型,可选值:int/integer -&对integer排序float/number/currency -&排序数字date -&排序日期text -&排序文本
定义搜索元素的类型
搜索数据时的url
默认列的宽度,只能是象素值,不能是百分比
定义当前列跟返回的xml数据之间的映射关系
&unformat&单元格值
Jqgrid学习 -------数据
jqGrid可支持的数据类型:xml、json、jsonp、local or clientSide、xmlstring、jsonstring&、script、function (&)。
需要定义jsonReader来跟服务器端返回的数据做对应,其默认值:
&&jsonReader&:&{&&
&&&&&&&root:&"rows",&&
&&&&&&&page:&"page",&&
&&&&&&&total:&"total",&&
&&&&&&&records:&"records",&&
&&&&&&&repeatitems:&true,&&
&&&&&&&cell:&"cell",&&
&&&&&&&id:&"id",&&
&&&&&&&userdata:&"userdata",&&
&&&&&&&subgrid:&{root:"rows",&&&
&&&&&&&&&&repeatitems:&true,&&&
&&&&&&&&&cell:"cell"&&
&&&&&&&}&&
这样服务器端返回的数据格式:
&&&&total:&"xxx",&&&
&&&&page:&"yyy",&&&
&&&&records:&"zzz",&&
&&&&rows&:&[&&
&&&&&&{id:"1",&cell:["cell11",&"cell12",&"cell13"]},&&
&&&&&&{id:"2",&cell:["cell21",&"cell22",&"cell23"]},&&
&&&&&&&&...&&
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&)&&
Jqgrid学习 -------事件
&&var&lastS&&
&&jQuery("#gridid").jqGrid({&&
&&&&&onSelectRow:&function(id){&&&
&&&&&&&&if(id&&&&id!==lastSel){&&&
&&&&&&&&&&&jQuery('#gridid').restoreRow(lastSel);&&&
&&&&&&&&&&&lastSel=&&&
&&&&&&&&}&&&
&&&&&&&&jQuery('#gridid').editRow(id,&true);&&&
afterInsertRow
rowidrowdatarowelem
当插入每行时触发。rowid插入当前行的id;rowdata插入行的数据,格式为name: value,name为colModel中的名字
beforeRequest
向服务器端发起请求之前触发此事件但如果datatype是一个function时例外
beforeSelectRow
当用户点击当前行在未选择此行时触发。rowid:此行id;e:事件对象。返回值为ture或者false。如果返回true则选择完成,如果返回false则不会选择此行也不会触发其他事件
gridComplete
当表格所有数据都加载完成而且其他的处理也都完成时触发此事件,排序,翻页同样也会触发此事件
loadComplete
当从服务器返回响应时执行,xhr:XMLHttpRequest&对象
xhr,status,error
如果请求服务器失败则调用此方法。xhr:XMLHttpRequest&对象;satus:错误类型,字符串类型;error:exception对象
onCellSelect
rowid,iCol,cellcontent,e
当点击单元格时触发。rowid:当前行id;iCol:当前单元格索引;cellContent:当前单元格内容;e:event对象
ondblClickRow
rowid,iRow,iCol,e
双击行时触发。rowid:当前行id;iRow:当前行索引位置;iCol:当前单元格位置索引;e:event对象
onHeaderClick
当点击显示/隐藏表格的那个按钮时触发;gridstate:表格状态,可选值:visible or hidden
点击翻页按钮填充数据之前触发此事件,同样当输入页码跳转页面时也会触发此事件
onRightClickRow
rowid,iRow,iCol,e
在行上右击鼠标时触发此事件。rowid:当前行id;iRow:当前行位置索引;iCol:当前单元格位置索引;e:event对象
onSelectAll
aRowids,status
multiselect为ture,且点击头部的checkbox时才会触发此事件。aRowids:所有选中行的id集合,为一个数组。status:boolean变量说明checkbox的选择状态,true选中false不选中。无论checkbox是否选择,aRowids始终有&值
onSelectRow
rowid,status
当选择行时触发此事件。rowid:当前行id;status:选择状态,当multiselect&为true时此参数才可用
index,iCol,sortorder
当点击排序列但是数据还未进行变化时触发此事件。index:name在colModel中位置索引;iCol:当前单元格位置索引;sortorder:排序状态:desc或者asc
resizeStart
event, index
当开始改变一个列宽度时触发此事件。event:event对象;index:当前列在colModel中位置索引
resizeStop
newwidth, index
当列宽度改变之后触发此事件。newwidth:列改变后的宽度;index:当前列在colModel中的位置索引
serializeGridData
向服务器发起请求时会把数据进行序列化,用户自定义数据也可以被提交到服务器端
Jqgrid学习 -------方法
jqGrid的方法,从3.6开始已经完全兼容jQuery UI库。
jQuery("#grid_id").jqGridMethod(&parameter1,...parameterN&);
jQuery("#grid_id").setGridParam({...}).hideCol("somecol").trigger("reloadGrid");
如果使用新的API:
jQuery("#grid_id").jqGrid('method',&parameter1,...parameterN&);
jQuery("#grid_id").jqGrid('setGridParam',{...}).jqGrid('hideCol',"somecol").trigger("reloadGrid");
jqGrid配置使用新的api
&&&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&XHTML&1.0&Strict//EN"&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&&&
&&&html&xmlns="http://www.w3.org/1999/xhtml"&xml:lang="en"&lang="en"&&&
&&&head&&&
&&&meta&http-equiv="Content-Type"&content="text/&charset=utf-8"&/&&&
&&&title&My&First&Grid&/title&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui-lightness/jquery-ui-1.7.1.custom.css"&/&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui.jqgrid.css"&/&&&
&&&script&src="js/jquery-1.3.2.min.js"&type="text/javascript"&&/script&&&
&&&script&src="js/i18n/grid.locale-en.js"&type="text/javascript"&&/script&&&
&&&script&type="text/javascript"&&&
&&&&&&jQuery.jgrid.no_legacy_api&=&&&
&&&/script&&&
&&&script&src="js/jquery.jqGrid.min.js"&type="text/javascript"&&/script&&&
&&&/head&&&
&&&body&&&
&&&/body&&&
jqGrid方法
addJSONData
使用传来的data数据填充表格。使用方法:
var mygrid = jQuery(&#&+grid_id)[0];
var myjsongrid = eval(&(&+jsonresponse.responseText+&)&); mygrid.addJSONData(myjsongrid);
myjsongrid =
jsonresponse =
addRowData
rowid,data, position, srcrowid
成功为true,&否则为false
根据参数插入一行新的数据,rowid为新行的id,data为新行的数据,position为新增行的位置,srcrowid为新增行的参考位置。data数据格式:{name1:value1,name2: value2&} name为在colModel中指定的名称
addXMLData
根据传来的数据填充表格。用法:var mygrid = jQuery(&#&+grid_id)[0]; mygrid.addXmlData(xmlresponse.responseXML);
clearGridData
clearfooter
jqGrid对象
清除表格当前加载的数据。如果clearfooter为true时则此方法删除表格最后一行的数据
delRowData
成功为true否则为false
根据rowid删除行,但不会从服务器端删除数据
footerData
action,data, format
jgGrid对象
设置或者取得底部数据。action:&get&或者&set&,默认为&get&,如果为&get&返回值为name:value,name为colModel中名称。如果为&set&则值为name:value,name是colModel中的名称。format:默认为true,当为&true时,在设置新值时会调用formatter格式化数值
rowid, iCol
单元格内容
返回指定rowid,iCol的单元格内容,iCol既可以是当前列在colModel中的位置索引也可以是name值。注意:在编辑行或者单元格时不能使用此方法,此时返回的并不是改变的值,而是原始值
colname, returntype, mathoperation
array[] or value
返回列的值。colname既可以是当前列在colModel中的位置索引也可以是name值。returntype指定返回数据的类型,默认为false。当为false时,返回的数组中只包含列的值,当为true时返回数组是对象数组,具体格式&{id:rowid, value:cellvalue}&,id为行的id,value为列的值。如:&[{id:1,value:1},{id:2,value:2}&]。mathoperation&可选值为'sum, 'avg', 'count'
getDataIDs
返回当前grid里所有数据的id
getGridParam
mixed value
返回请求的参数信息
rowid,rowcontent
如果rowcontent为false,返回行所在的索引位置,id为行id。rowcontent默认为false。如果rowconent为ture则返回的为行对象,如果找不到行则返回false
getRowData
rowid or none
返回指定行的数据,返回数据类型为name:value,name为colModel中的名称,value为所在行的列的值,如果根据rowid找不到则返回空。在编辑模式下不能用此方法来获取数据,它得到的并不是编辑后的值
colnameor[colnames]
jqGrid对象
如果参数为一个列名则隐藏此列,如果给定的是数组则隐藏指定的所有列。格式:&[&name1&,&name2&]
remapColumns
permutation, updateCells, keepHeader
调整表格列的显示顺序,permutation为当前列的顺序,假如值是[1,0,2],那么第一列就会在第二位显示。如果updateCells为ture则是对单元格数据进行重新排序,如果keepHeader为true则对header数据显示位置进行调整
resetSelection
jqGrid对象
选择或者反选行数据,在多选模式下也同样起作用
setCaption
jqGrid对象
设置表格的标题
rowid,colname, data, class, properties
jqGrid对象
改变单元格的值。rowid:当前行id;colname:列名称,也可以是列的位置索引,从0开始;data:改变单元格的内容,如果为空则不更&新;class:如果是string则会使用addClass方法将其加入到单元格的css中,如果是array则会直接加到style属性中;properties:设置单元格属性
setGridParam
jqGrid对象
设置grid的参数。有些参数的修改必须要重新加载grid才可以生效,这个方法可以覆盖事件
setGridHeight
new_height
jqGrid对象
动态改变grid的高度,只能对单元格的高度进行设置而不能对表格的高度进行动态修改。new_height:可以是象素值,百分比或者"auto"
setGridWidth
new_width,shrink
jqGrid对象
动态改变表格的宽度。new_width:表格宽度,象素值;shrink:true或者false,作用同shrinkToFit
colname, data, class, properties
jqGrid对象
给指定列设置一个新的显示名称。colname:列名称,也可以是列的位置索引,从0开始;data:列显示名称,如果为空则不修改;class:如果是&string则会使用addClass方法将其加入到单元格的css中,如果是array则会直接加到style属性中;properties:设置&label的属性
setRowData
rowid,data, cssprop
成功true否则false
更新行的值,rowid为行id。data值格式:{name1:value1,name2: value2&} name为colModel中名称;cssprop:如果是string则会使用addClass方法将其加入到行的css中,如果是array或者对象&则会直接加到style属性中
setSelection
rowid,onselectrow
jqGrid对象
选择或反选指定行。如果onselectrow为ture则会触发事件onSelectRow,onselectrow默认为ture
显示列。colname可以是数组[&name1&,&name2&],但是name1或者name2必须是colModel中的name
trigger(&reloadGrid&)
jqGrid对象
重新加载当前表格,也会向服务器发起新的请求
updateColumns
同步表格的宽度,用在表格拖拽时,用法:var mygrid=jQuery(&#grid_id&)[0];mygrid.updateColumns();
jqGrid的通用方法和设置&这些方法并不和jqGrid对象绑定,可以随意使用:
jQuery.jgrid.jqGridFunction(&parameter1,...parameterN&);
ajaxOptions
这个函数可以改变jqgrid中用到的ajax请求参数,这个函数可以覆盖当前所有ajax请求设置。从3.6版本开始起有3个级别的ajax设置:第一&个级别就是在模块中设置ajax请求;第二个级别就是通过此函数设置;第三级别的设置是控制全局ajax请求的设置:jQuery.extend(jQuery.ajax({method specific options}, ajaxOptions, ThirdLevelajaxSettinds));&当然我们也可以单独设置ajax的参数
解析后的string
转义字符串,把两个反斜杠(\\)转化为单个反斜杠(\)
jgrid.htmlDecode
转换后string
把转码后的字符串还原
jgrid.htmlEncode
编码后的string
把字符串编码
jgrid.format
格式化后string
简单字符串模板。用法:Example jQuery.jqgformat(&Please enter a value between {0} and {1}.&, 4,result : &Please enter a value between 4 and 8.&
jgrid.getCellIndex
这个方法是用来修复在ie7里的一个bug
jgrid.stringToDoc
把xmlstring转换为dom对象
jgrid.stripHtml
new_content
去掉html标签返回标签中内容
jgrid.parse
jsonstring
把一个jsonstring转换为json对象
jqGrid的方法
filterGrid
grid_id,params
构造jqGrid的查询界面。grid_id:表格id;params:参数
filterToolbar
jqGrid对象
同上。不同的是搜索输入框在header层下方
getColProp
返回指定列的属性集合。name为colModel中名称
GridDestroy
从dom上删除此grid
GridUnload
跟GridDestroy不同的是table对象跟pager对象并不会被删除,以便下次使用
setGridState
jqGrid对象
设置grid的状态,显示或者隐藏。这个方法不会触发onHeaderClick&事件。
setColProp
colname, properties
jqGrid对象
设置新的属性,对于动态改变列属性是非常有用的,但是有些属性的修改并不会起效。用法:jQuery(&#grid_id&).setColProp('colname',{editoptions:{value:&True:False&}});
colname, reload
jqGrid对象
按指定列进行排序。效果同setGridParam({sortname:'myname'}).trigger('reloadGrid').&如果reload为true则会重新加载数据
updateGridRows
data,rowidname,jsonreader
修改表格中某行的数据,data数据格式:[{name:value,name1:value1&}, {name:value,name2:value2&}],name为colModel中的名称;rowidname某行的名称。&jsonreader:boolean值,默认false。如果为true则是定义数据的格式,data的值并不是name:value形式而只是&value
Jqgrid学习 -------配置 json
IE8,FF3以及Chrome 3已经支持JSON,配置:
&&&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&XHTML&1.0&Strict//EN"&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&&&
&&&html&xmlns="http://www.w3.org/1999/xhtml"&xml:lang="en"&lang="en"&&&
&&&head&&&
&&&meta&http-equiv="Content-Type"&content="text/&charset=utf-8"&/&&&
&&&title&My&First&Grid&/title&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui-lightness/jquery-ui-1.7.1.custom.css"&/&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui.jqgrid.css"&/&&&
&&&script&src="js/jquery-1.3.2.min.js"&type="text/javascript"&&/script&&&
&&&script&src="js/i18n/grid.locale-en.js"&type="text/javascript"&&/script&&&
&&&script&type="text/javascript"&&&
&&&&&&jQuery.jgrid.useJSON&=&&&
&&&/script&&&
&&&script&src="js/jquery.jqGrid.min.js"&type="text/javascript"&&/script&&&
&&&/head&&&
&&&body&&&
&&&/body&&&
这段代码要放到语言包之后jqGrid.js文件之前。&如果浏览器不支持JSON,那么我们只能用eval函数解析json。
除了jqGrid本身提供对json的类库外,我们可以使用JSON.parse来处理JSON,配置如下:
&&&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&XHTML&1.0&Strict//EN"&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&&&
&&&html&xmlns="http://www.w3.org/1999/xhtml"&xml:lang="en"&lang="en"&&&
&&&head&&&
&&&meta&http-equiv="Content-Type"&content="text/&charset=utf-8"&/&&&
&&&title&My&First&Grid&/title&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui-lightness/jquery-ui-1.7.1.custom.css"&/&&&
&&&link&rel="stylesheet"&type="text/css"&media="screen"&href="css/ui.jqgrid.css"&/&&&
&&&script&src="js/json2.js"&type="text/javascript"&&/script&&&
&&&script&src="js/jquery-1.3.2.min.js"&type="text/javascript"&&/script&&&
&&&script&src="js/i18n/grid.locale-en.js"&type="text/javascript"&&/script&&&
&&&script&src="js/jquery.jqGrid.min.js"&type="text/javascript"&&/script&&&
&&&script&type="text/javascript"&&&
&&&&&jQuery.extend(jQuery.jgrid,{&&
&&&&&&&&parse:function(jsstring)&{&&
&&&&&&&&&&&return&JSON.parse(jsstring);&&
&&&&&&&&}&&
&&&&&});&&
&&&/script&&&
&&&/head&&&
&&&body&&&
&&&/body&&&
Jqgrid学习 -------翻页
jqGrid的翻页要定义在html里,通常是在grid的下面,且是一个div对象:
&&&table&id="list"&&/table&&&&
&&&&&&div&id="gridpager"&&/div&
&&jQuery("#grid_id").jqGrid({&&
&&&&&pager&:&'#gridpager',&&
不必给翻页设置任何的css属性。在jqGrid里定义的翻页可以是::pager : '#gridpager', pager : 'gridpager' or pager : jQuery('#gridpager'). 推荐使用前两个,当使用其他方式时jqGrid的导入导出功能时会引起错误。
导航栏的属性:
&&$.jgrid&=&{&&
&&&&&&defaults&:&{&&
&&&&&&&&&&recordtext:&"View&{0}&-&{1}&of&{2}",&&
&&&&&&&&&&&&&&emptyrecords:&"No&records&to&view",&&
&&&&&&&&&&loadtext:&"Loading...",&&
&&&&&&&&&&pgtext&:&"Page&{0}&of&{1}"&&
&&&&&&},&&
如果想改变这些设置:
1.&&&jQuery.extend(jQuery.jgrid.defaults,{emptyrecords:&"Nothing&to&display",...});
2.&&&&jQuery("#grid_id").jqGrid({&&
&&&&&&&&&&&&&&pager&:&'#gridpager',&&
&&&&&&&&&&&&&&emptyrecords:&"Nothing&to&display",&&
&&&&&&&&&&&&&&&&...&&
&&&&&&&&&&&&&&&&});
导航栏的属性:
是否可以被修改
只读属性,总页数
导航栏对象,必须是一个有效的html元素,位置可以随意
定义导航栏的位置,默认分为三部分:翻页,导航工具及记录信息
是否显示翻页按钮
是否显示跳转页面的输入框
页面信息,第一个值是当前页第二个值是总页数
只读属性,实际记录数,千万不能跟records&参数搞混了,通常情况下他们是相同的,假如我们定义rowNum=15,但我们从服务器端返回的记录为20即records=20,而reccount=15,表格中也显示15条记录
定义记录信息的位置,可选值:left, center, right
只读属性,从服务器端返回的记录数
recordtext
显示记录的信息,只有当viewrecords为true时起效,且记录数必须大于0
可以改变表格可以显示的记录数,格式为[10,20,30]
设置表格可以显示的记录数
viewrecords
是否要显示总记录数信息
jQuery("#grid_id").setGridParam({rowNum:10}).trigger("reloadGrid");&&
跟翻页相关的事件只有一个:onPaging
当点击翻页按钮但还为展现数据时触发此事件,当然这跳转栏输入页码改变页时也同样触发此事件。参数pgButton可选值:&first,last,prev,next
jqGrid的翻页导航是一个方法,你可以事先定义一些其他操作,比如:编辑、新增、删除及搜索。也可以增加自定义的函数。导航工具栏是定义到翻页控件上的。定义如下:
&&&body&&&
&&&&&&table&id="list"&&/table&&&&
&&&&&&div&id="gridpager"&&/div&&&&
&&jQuery("#grid_id").jqGrid({&&
&&&&&pager&:&'#gridpager',&&
&&jQuery("#grid_id").navGrid('#gridpager',{parameters},prmEdit,&prmAdd,&prmDel,&prmSearch,&prmView);&&
&&jQuery("#grid_id").jqGrid({&&
&&&&&pager&:&'#gridpager',&&
&&jQuery("#grid_id").jqGrid('navGrid','#gridpager',{parameters},prmEdit,&prmAdd,&prmDel,&prmSearch,&prmView);&&
&&jQuery("#grid_id").jqGrid({&&
&&&&&pager&:&'#gridpager',&&
&&}).navGrid('#gridpager',{parameters},&prmEdit,&prmAdd,&prmDel,&prmSearch,&prmView);&&
grid_id :表格id&gridpager :导航栏id&parameters :参数列表&prmEdit, prmAdd, prmDel, prmSearch, prmView :事件
&&$.jgrid&=&{&&
&&&&&search&:&{&&
&&&&&&&caption:&"Search...",&&
&&&&&&&Find:&"Find",&&
&&&&&&&Reset:&"Reset",&&
&&&&&&&odata&:&['equal',&'not&equal',&'less',&'less&or&equal','greater','greater&or&equal',&'begins&with','does&not&begin&with','is&in','is&not&in','ends&with','does&not&end&with','contains','does&not&contain'],&&
&&&&&&&groupOps:&[&{&op:&"AND",&text:&"all"&},&{&op:&"OR",&text:&"any"&}&],&&
&&&&&&&matchText:&"&match",&&
&&&&&&&rulesText:&"&rules"&&
&&&&&edit&:&{&&
&&&&&&&addCaption:&"Add&Record",&&
&&&&&&&editCaption:&"Edit&Record",&&
&&&&&&&bSubmit:&"Submit",&&
&&&&&&&bCancel:&"Cancel",&&
&&&&&&&bClose:&"Close",&&
&&&&&&&saveData:&"Data&has&been&changed!&Save&changes?",&&
&&&&&&&bYes&:&"Yes",&&
&&&&&&&bNo&:&"No",&&
&&&&&&&bExit&:&"Cancel",&&
&&&&view&:&{&&
&&&&&&caption:&"View&Record",&&
&&&&&&bClose:&"Close"&&
&&&&del&:&{&&
&&&&&&caption:&"Delete",&&
&&&&&&msg:&"Delete&selected&record(s)?",&&
&&&&&&bSubmit:&"Delete",&&
&&&&&&bCancel:&"Cancel"&&
&&&&nav&:&{&&
&&&&&&edittext:&"",&&
&&&&&&edittitle:&"Edit&selected&row",&&
&&&&&&addtext:"",&&
&&&&&&addtitle:&"Add&new&row",&&
&&&&&&deltext:&"",&&
&&&&&&deltitle:&"Delete&selected&row",&&
&&&&&&searchtext:&"",&&
&&&&&&searchtitle:&"Find&records",&&
&&&&&&refreshtext:&"",&&
&&&&&&refreshtitle:&"Reload&Grid",&&
&&&&&&alertcap:&"Warning",&&
&&&&&&alerttext:&"Please,&select&row",&&
&&&&&&viewtext:&"",&&
&&&&&&viewtitle:&"View&selected&row"&&
是否启用新增功能,当点击按钮时会触发editGridRow事件
给新增功能设置图标,只有UI theme里的图标才可以使用
ui-icon-plus
新增按钮上的文字
当鼠标移到新增按钮上时显示的提示
当我们edit,delete or view一行记录时出现的提示信息
当edit,delete or view一行记录时的文本提示
请选择一行记录
closeOnEscape
是否可以使用esc键关闭对话框
是否启用删除功能,启用时会触发事件delGridRow
设置删除按钮的图标,只有UI theme里的图标才可以使用
ui-icon-trash
设置到删除按钮上的文字信息
当鼠标移到删除按钮上时出现的提示
删除锁选择的行
是否启用可编辑功能,当编辑时会触发事件editGridRow
设置编辑按钮的图标,只有UI theme里的图标才可以使用
ui-icon-pencil
编辑按钮上文字
当鼠标移到编辑按钮上出现的提示信息
编辑所选择的行
定义按钮位置,可选值left, center and right.
是否启用刷新按钮,当点击刷新按钮时会触发trigger(&reloadGrid&)事件,而且会清空搜索条件值
refreshicon
设置刷新图标,只有UI theme里的图标才可以使用
ui-icon-refresh
refreshtext
刷新按钮上文字信息
refreshtitle
当鼠标移到刷新按钮上的提示信息
refreshstate
指明表格如何刷新。firstpage:从第一页开始刷新;current:只刷新当前页内容
afterRefresh
当点击刷新按钮之后触发此事件
是否启用搜索按钮,会触发searchGrid&事件
searchhicon
设置搜索按钮的图标,只有UI theme里的图标才可以使用
ui-icon-search
searchtext
搜索按钮上的文字
searchtitle
当鼠标移到搜索按钮上的提示信息
是否启用查看按钮,会触发事件viewGridRow
设置查看按钮的图标,只有UI theme里的图标才可以使用
ui-icon-document
查看按钮上文字
当鼠标移到查看按钮上的提示信息
查看所选记录
&&jQuery("#grid_id").jqGrid({&&
&&&&&pager&:&'#gridpager',&&
&&}).navGrid('#gridpager',{view:true,&del:false},&&&
&&{},&//&use&default&settings&for&edit&&
&&{},&//&use&default&settings&for&add&&
&&{},&&//&delete&instead&that&del:false&we&need&this&&
&&{multipleSearch&:&true},&//&enable&the&advanced&searching&&
&&{closeOnEscape:true}&/*&allow&the&view&dialog&to&be&closed&when&user&press&ESC&key*/&&
Jqgrid学习 -------自定义按钮
jQuery("#grid_id").navGrid("#pager",...).navButtonAdd("#pager",{parameters});
jQuery("#grid_id").jqGrid('navGrid',"#pager",...).jqGrid('navButtonAdd',"#pager",{parameters});
{&caption:"NewButton",&buttonicon:"ui-icon-newwin",&onClickButton:null,&position:&"last",&title:"",&cursor:&"pointer"}&&
caption:按钮名称,可以为空,string类型&buttonicon:按钮的图标,string类型,必须为UI theme图标&onClickButton:按钮事件,function类型,默认null&position:first或者last,按钮位置&title:string类型,按钮的提示信息&cursor:string类型,光标类型,默认为pointer&id:string类型,按钮id
如果设置多个按钮:
&&jQuery("#grid_id")&&
&&.navGrid('#pager',{edit:false,add:false,del:false,search:false})&&
&&.navButtonAdd('#pager',{&&
&&&&&caption:"Add",&&&
&&&&&buttonicon:"ui-icon-add",&&&
&&&&&onClickButton:&function(){&&&
&&&&&&&alert("Adding&Row");&&
&&&&&},&&&
&&&&&position:"last"&&
&&.navButtonAdd('#pager',{&&
&&&&&caption:"Del",&&&
&&&&&buttonicon:"ui-icon-del",&&&
&&&&&onClickButton:&function(){&&&
&&&&&&&&alert("Deleting&Row");&&
&&&&&},&&&
&&&&&position:"last"&&
按钮间的分隔
jQuery("#grid_id").navGrid("#pager",...).navButtonAdd("#pager",{parameters}).navSeparatorAdd("#pager",{separator_parameters}};
默认参数:
{sepclass&:&&ui-separator&,sepcontent:&''}
sepclass:ui-jqgrid的属性名&sepcontent:分隔符的内容.
Jqgrid学习 -------格式化
jqGrid的格式化是定义在语言包中
&&$jgrid&=&{&&
&&&&&formatter&:&{&&
&&&&&&&integer&:&{thousandsSeparator:&"&",&defaultValue:&'0'},&&
&&&&&&&number&:&{decimalSeparator:".",&thousandsSeparator:&"&",&decimalPlaces:&2,&defaultValue:&'0.00'},&&
&&&&&&&currency&:&{decimalSeparator:".",&thousandsSeparator:&"&",&decimalPlaces:&2,&prefix:&"",&suffix:"",&defaultValue:&'0.00'},&&
&&&&&&&date&:&{&&
&&&&&&&&&dayNames:&[&&
&&&&&&&&&&&"Sun",&"Mon",&"Tue",&"Wed",&"Thr",&"Fri",&"Sat",&&
&&&&&&&&&&&"Sunday",&"Monday",&"Tuesday",&"Wednesday",&"Thursday",&"Friday",&"Saturday"&&
&&&&&&&&&],&&
&&&&&&&&&monthNames:&[&&
&&&&&&&&&&&"Jan",&"Feb",&"Mar",&"Apr",&"May",&"Jun",&"Jul",&"Aug",&"Sep",&"Oct",&"Nov",&"Dec",&&
&&&&&&&&&&&"January",&"February",&"March",&"April",&"May",&"June",&"July",&"August",&"September",&"October",&"November",&"December"&&
&&&&&&&&&],&&
&&&&&&&&&AmPm&:&["am","pm","AM","PM"],&&
&&&&&&&&&S:&function&(j)&{return&j&&&11&||&j&&&13&?&['st',&'nd',&'rd',&'th'][Math.min((j&-&1)&%&10,&3)]&:&'th'},&&
&&&&&&&&&srcformat:&'Y-m-d',&&
&&&&&&&&&newformat:&'d/m/Y',&&
&&&&&&&&&masks&:&{&&
&&&&&&&&&&&ISO8601Long:"Y-m-d&H:i:s",&&
&&&&&&&&&&&ISO8601Short:"Y-m-d",&&
&&&&&&&&&&&ShortDate:&"n/j/Y",&&
&&&&&&&&&&&LongDate:&"l,&F&d,&Y",&&
&&&&&&&&&&&FullDateTime:&"l,&F&d,&Y&g:i:s&A",&&
&&&&&&&&&&&MonthDay:&"F&d",&&
&&&&&&&&&&&ShortTime:&"g:i&A",&&
&&&&&&&&&&&LongTime:&"g:i:s&A",&&
&&&&&&&&&&&SortableDateTime:&"Y-m-d\\TH:i:s",&&
&&&&&&&&&&&UniversalSortableDateTime:&"Y-m-d&H:i:sO",&&
&&&&&&&&&&&YearMonth:&"F,&Y"&&
&&&&&&&&&},&&
&&&&&&&&&reformatAfterEdit&:&false&&
&&&&&&&},&&
&&&&&&&baseLinkUrl:&'',&&
&&&&&&&showAction:&'',&&
&&&&&&&target:&'',&&
&&&&&&&checkbox&:&{disabled:true},&&
&&&&&&&idName&:&'id'&&
这些设置可以通过colModel中的formatoptions参数修改
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel&:&[&&
&&&&&...&&
&&&&&&&&{name:'myname',&...&formatter:'number',&...},&&
&&&&&...&&
此实例是对名为&myname&的列进行格式化,格式化类是&number&,假如初始值为&1234.1&则格式化后显示为&1 234.10& 。
如果给某列进行格式化:
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel&:&[&&
&&&&&...&&
&&&&&&&&{name:'myname',&...&formatter:'currency',&formatoptions:{decimalSeparator:",",&thousandsSeparator:&",",&decimalPlaces:&2,&prefix:&"$&"}&}&,&&
&&&&&...&&
这个设置会覆盖语言包中的设置。
select类型的格式化实例:
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel&:&[&{name:'myname',&edittype:'select',&editoptions:{value:"1:O2:Two"}}&...&],&&
使用格式化后
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel&:&[&{name:'myname',&edittype:'select',&formatter:'select',&editoptions:{value:"1:O2:Two"}}&...&]&&
结果是,表格的数据值为1或者2但是现实的是One或者Two。
对超链接使用select类型的格式化:
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&{name:'myname',&edittype:'select',&formatter:'select',&formatoptions:{baseLinkUrl:'someurl.php',&addParam:&'&action=edit'},&...}&&&
&&&&&&&&...&&&
如果想改变id值则
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&{name:'myname',&edittype:'select',&formatter:'select',&formatoptions:{baseLinkUrl:'someurl.php',&addParam:&'&action=edit',&idName:'myid'},&...}&&&
&&&&&&&&...&&&
Jqgrid学习 -------自定义格式化
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&&&
&&&&&&&&...&&&
&&&&&&&&{name:'price',&index:'price',&width:60,&align:"center",&editable:&true,&formatter:currencyFmatter},&&
&&&&&&&&...&&
&&function&currencyFmatter&(cellvalue,&options,&rowObject)&&
&&&&&//&do&something&here&&
&&&&&return&new_format_value&&
cellvalue:要被格式化的值&options:对数据进行格式化时的参数设置,格式为:&{ rowId: rid, colModel: cm}&rowObject:行数据
数据的反格式化跟格式化用法相似.
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&&&
&&&&&&&&...&&&
&&&&&&&&{name:'price',&index:'price',&width:60,&align:"center",&editable:&true,&formatter:currencyFmatter,&unformat:unformatCurrency},&&
&&&&&&&&...&&
&&function&currencyFmatter&(cellvalue,&options,&rowObject)&&
&&&&&return&"$"+&&
&&function&&unformatCurrency&(cellvalue,&options)&&
&&&&&return&cellvalue.replace("$","");&&
表格中数据实际值为123.00,但是显示的是$123.00; 我们使用getRowData ,getCell 方法取得的值是123.00。&创建通用的格式化函数
&&&script&type="text/javascript"&&&
&&jQuery.extend($.fn.fmatter&,&{&&
&&&&&&currencyFmatter&:&function(cellvalue,&options,&rowdata)&{&&
&&&&&&return&"$"+&&
&&jQuery.extend($.fn.fmatter.currencyFmatter&,&{&&
&&&&&&unformat&:&function(cellvalue,&options)&{&&
&&&&&&return&cellvalue.replace("$","");&&
&&&/script&
具体使用:
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&&&
&&&&&&&&...&&&
&&&&&&&&{name:'price',&index:'price',&width:60,&align:"center",&editable:&true,&formatter:currencyFmatter},&&
&&&&&&&&...&&
Jqgrid学习 -------搜索
表格中所有的列都可以作为搜索条件。&所用到的语言包文件
&&$.jgrid&=&{&&
&&&&&search&:&{&&
&&&&&&&caption:&"Search...",&&
&&&&&&&Find:&"Find",&&
&&&&&&&Reset:&"Reset",&&
&&&&&&&odata&:&['equal',&'not&equal',&'less',&'less&or&equal','greater','greater&or&equal',&'begins&with','does&not&begin&with','is&in','is&not&in','ends&with','does&not&end&with','contains','does&not&contain'],&&
&&&&&&&groupOps:&[&{&op:&"AND",&text:&"all"&},&{&op:&"OR",&text:&"any"&}&],&&
&&&&&&&matchText:&"&match",&&
&&&&&&&rulesText:&"&rules"&&
colModel 设置
是否是搜索列
搜索类型,text类型或者select类型
searchoptions
对搜索条件进行一些设置
searchoptions 参数
只有当搜索类型为select才起效
buildSelect
只有当dataUrl设置时此参数才起效,通过一个function来构建下拉框
初始化时调用,用法:dataInit: function(elem) {do something}通常用在日期的选择上. Example:dataInit : function (elem) {$(elem).datepicker();}
dataEvents
事件列表,用法:dataEvents: [{ type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); }},{ type: 'keypress', fn: function(e) { console.log('keypress'); } }]
设置属性值。attr : { title: &Some title& }
searchhidden
默认情况下,隐藏值不是搜索列。为了使隐藏值可以作为搜索列则将此设为true
此参数只用到单列搜索上,说明搜索条件。可用值:['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc']意&思为['equal','not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain']
defaultValue
只用在搜索类型为select下。可以是string或者object,如果为string则格式为value:label,且以&;&结尾;如果为object格式为editoptions:{value:{1:'One';2:'Two'}}
&&jQuery("#grid_id").jqGrid({&&
&&&&&colModel:&[&&&
&&&&&&&&...&&&
&&&&&&&&{name:'price',&index:'price',&width:60,&search:true,&stype:'text',&searchoptions:{dataInit:datePick,&attr:{title:'Select&Date'}}&},&&
&&&&&&&&...&&
&&datePick&=&function(elem)&&
&&&&&jQuery(elem).datepicker();&&
需要说明的:&所有的搜索都是使用url来到服务器端查询数据。&当执行搜索时会用查询数据填充postData array&发送到服务器端搜索字符串的名称为_search&当点击刷新按钮时不会使用搜索条件&每个搜索方法都有自己的数据清空方法
Jqgrid学习 -------搜索工具栏
搜索工具栏只是在列标题下面构造一个输入框。且使用表格的url进行搜索记录,发到服务器端数据格式为name:value,而且是附加在postData之后。
jQuery("#grid_id").filterToolbar(options);&&
jQuery("#grid_id").jqGrid('filterToolbar',options);&&
options:参数
autosearch
查询规则,如果是text类型则是当按下回车键才去执行查询;如果是select类型的查询则当值改变时就去执行查询
beforeSearch
执行查询之前触发此事件
afterSearch
查询完成后触发事件
beforeClear
清空查询条件值时触发事件
afterClear
清空查询条件后触发事件
triggerToolbar
执行查询时调用此方法
clearToolbar
当清空查询条件值时触发此函数
toggleToolbar
Toggeles工具栏
Jqgrid学习 -------自定义搜索
&div&id="mysearch"&&/div&
jQuery("#mysearch").filterGrid('#grid_id',options);
options:参数
当为ture我们会使用colModel中的属性构造查询条件,所用到的参数:name, index, edittype, editoptions, search.还有一个参数:defval:查询条件的默认值;surl:当edittype:'select'时获取select数据的url,格 式:&select&&option value='val1'& Value1 &/option&&option value='val2'& Value2 &/option&&&option value='valn'& ValueN &/option&&/select&
gridModel为true时起效,设置查询列的名称
filterModel
gridModel为false时起效,格式:{label:'LableFild', name: 'colname', stype: 'select', defval: 'default_value', surl: 'someurl', sopt:{optins for the select}}。label:字段显示名称;name:列名;stype:输入框类型,text或者select;surl:获取select数据的地 址,要求的内容为html格式:&select&&option value='val1'& Value1 &/option&&option value='val2'& Value2 &/option&&&option value='valn'& ValueN &/option&&/select&;sopt:同editoptions&
定义表单如何被构造,'horizontal' or 'vertical'
autosearch
如果为true:当点击回车键触发查询;当select值变化时触发查询
可以使用的css
filterform
tableclass
可以使用到table上的css
filtertable
buttonclass
按钮上使用的css
filterbutton
searchButton
clearButton
清空数据的按钮
enableSearch
启用禁用搜索按钮
enableClear
启用禁用清空按钮
beforeSearch
搜索之前触发的事件
afterSearch
搜索完成之后触发的事件
beforeClear
清空数据之前触发的事件
afterClear
清空数据之后触发事件
搜索数据的url
marksearched
当为true时,每次查询之后所有查询的列都标记为可查询列}

我要回帖

更多关于 jqgrid delrowdata 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信