`
wuyizhong
  • 浏览: 49214 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

jqGrid编辑

阅读更多

jqGrid的编辑——基础知识

使用jqGrid修改数据

jqGrid可以有三种方式,让我们来修改显示在jqGrid中的数据。这三种方式分别是:
Cell Editing——只允许修改某一个单元格内容.(所有图片均来自jqGrid的wiki或者jqGrid的Demo截图)


Inline Editing——允许在jqGrid中直接修改某一行的数据


Form Editing——弹出一个新的编辑窗口进行编辑和新增


暂时先不管这三种方式,我们来看看如何让一个jqGrid的数据能够进行编辑呢?
其实很简单,就是在jqGrid的colModel属性中,设置几个属性:
editable
可选值是true或者false,默认是false。用来说明这个列的数据是否可编辑。特别要注意的是,jqGrid的隐藏字段就算设置了这个属性为true,一样不能被编辑。在Cell Editing以及Inline Editing模式下,只能通过把这些字段设置为可见来修改。在Form Editing模式下,可以通过editoptions参数来设置是否可以修改隐藏列。
edittype
可选的值是'text', 'textarea', 'select', 'checkbox', 'password', 'button', 'image', 'file'以及'custom'。默认值是text。
根据名字就可以看出来,这个属性是设置编辑框的HTML样式的。比如,设置为text值,并且可以在editoptions中设置size以及maxlength等属性。这样生成的HTML样式有点类似<input type="text" size="10" maxlength="15"/>这样。
其中有几个要注意:
设置checkbox的时候,需要在editoptions中指定value值,第一个值应该是checked的时候的值。比如editoptions:{value:"Yes:No"}会设定这个checkbox编辑框,选中的时候,值是Yes,没选中的时候值是No。建议最好都设定一下这个值。
设置select的时候,editoptions中需要设定select下拉框的值。
一种方式是用字符串设置editoptions的value属性,像这样editoption: { value: “FE:FedEx; IN:InTime; TN:TNT” },这就为下拉框设置了三个可选值。注意,冒号前面的代表的是值,冒号后面代表的是显示值。
第二种方式是用对象来设置editoptions的value属性,这个时候,value值要用{}包括起来,像这样: editoptions:{value:{1:'One',2:'Two'}}。
第三种方式,是为editoptions设置dataUrl参数。意思就是select的值,是通过一个URL来获取的,比如一个Ajax请求的返回值。特别需要注意的是,在这种情况下,URL的返回值必须是包括select以及option这些HTML标签的。就像这样:<select><option value="1">One</option><option value="2">Two</option></select>.这种情况下,还可以在editoptions中设置是否允许多选,size等等。
设置image的时候,editoptions的src属性用来指定图片的地址。
custom类型就是通过一个函数来指定需要编辑的元素,并返回需要提交的值。
函数的定义在editoptions中说明,分别是custom_element用来指定哪一个函数用来创建编辑框,注意这里函数必须返回一个新的DOM元素,函数的参数一个是值Value,另外一个是colModel的editoptions值。
另外一个是custom_value,这个函数用来在编辑完成之后返回本编辑框的值,这个函数的参数是元素对象。大概的调用格式如下:
<script>
//创建一个input输入框
function myelem (value, options) {
var el = document.createElement("input");
el.type="text";
el.value = value;
return el;
}

//获取值
function myvalue(elem) {
return $(elem).val();
}
jQuery("#grid_id").jqGrid({
...
colModel: [
...
{name:'price', ..., editable:true, edittype:'custom', editoptions:{custom_element: myelem, custom_value:myvalue} },
...
]
...
});
</script>

editoptions
除了上面介绍的editoptions选项外,我们还可以设置defaultValue等等,更复杂的东西,比如dataEvents就不介绍了。
editrules
editrules是用来设置一些可用于可编辑列的colModel的额外属性的。大多数的时候是用来在提交到服务器之前验证用户的输入合法性的。比如editrules:{edithidden:true, required:true....}。
可选的属性包括:
edithidden:只在Form Editing模式下有效,设置为true,就可以让隐藏字段也可以修改。
required:设置编辑的时候是否可以为空(是否是必须的)。
number:设置为true,如果输入值不是数字或者为空,则会报错。
integer:
minValue:
maxValue:
email:
url:检查是不是合法的URL地址。
date:
time:
custom:设置为true,则会通过一个自定义的js函数来验证。函数定义在custom_func中。
custom_func:传递给函数的值一个是需要验证value,另一个是定义在colModel中的name属性值。函数必须返回一个数组,一个是验证的结果,true或者false,另外一个是验证错误时候的提示字符串。形如[false,”Please enter valid value”]这样。
自定义验证的例子:
<script>
function mypricecheck(value, colname) {
if (value < 0 && value >20)
return [false,"Please enter value between 0 and 20"];
else
return [true,""];
}

jQuery("#grid_id").jqGrid({
...
colModel: [
...
{name:'price', ..., editrules:{custom:true, custom_func:mypricecheck....}, editable:true },
...
]
...
});
</script> < function mypricecheck(value, colname) { if (value < 0 && value >20) return [false,"Please enter value between 0 and 20"]; else return [true,""]; } jQuery("#grid_id").jqGrid({ ... colModel: [ ... {name:'price', ..., editrules:{custom:true, custom_func:mypricecheck....}, editable:true }, ... ] ... }); // >

formoptions(只在Form Editing方式下有效),他的主要作用是用来重新排序Form中的编辑元素,同时可以在编辑元素前或者编辑元素后增加一些信息(比如,一些提示信息,或者一个红色的*表示必须要填写等等)。
可选的属性如下:
elmprefix:字符串值,如果设置了,则会在编辑框之后出现一些内容(可能是HTML的内容)
elmsuffix:字符串值,如果设置了,则会在编辑框之前出现一些内容(可能是HTML的内容)
label:字符串值,如果设置了,则这个值会替换掉colNames中的值出现作为该编辑框的标签显示
rowpos:数字值,决定元素行在Form中的位置(相对于文本标签again with the text-label)
colpos:数字值,决定元素列在Form中的位置(相对于标签again with the label)
两个编辑框可以有相同的rowpos值,但是colpos值不同,这会把这两个编辑框放到Form的同一行中。
特别注意:如果设置了rowpos以及colpos的值,强烈推荐为所有的其他编辑元素都设置这些值。

 

----本文只是doc文档的解释,没有太多自己的东西。

来自开源中国

分享到:
评论

相关推荐

    jqgrid 编辑表格 一列

    jqgrid 编辑表格 一列

    jqgrid行编辑+动态为其他列赋值

    该方式是在jqgrid的列基础上进行编辑,为列添加保存事件,文本域和输入框采用blur失去焦点的方式进行保存,该方法含有点击为其他列赋值的功能。参考api列子并结合自己公司功能需求。

    jqgrid 编辑添加功能详细解析

    本文是对jqgrid 编辑添加功能进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    jqGrid表格数据展示插件

    jqGrid表格数据展示插件,可以做出很多很炫酷的效果,你值得拥有

    jqGrid的表格数据呈编辑转态

    jqGrid的表格的每行每列的数据既显示又可以编辑。

    jqgrid实现简单的单行编辑功能

    主要介绍了jqgrid实现简单的单行编辑功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    jqgrid 表格的增删改查以及modal弹出框

    jqgrid 表格的增删改查4种操作,以及表格分页,还有修改以及添加时候的modal弹出框。代码是个project项目文件,需要自己建个解决方案将项目包含进去。

    jqGrid4.6完整包

    jqGrid4.6完整包,可以实现可编辑表格功能。经本人测试,完全可用。

    jqgrid celledit

    jqgrid 4.0,可以编辑单元格php,jsp测试通过

    jqgrid 二次封装上传 jqgrid 5.0以上版本

    jqgrid二次封装,快速加载grid表格,不改变原有的使用习惯,增加一些默认处理逻辑 var grid = $.jqGrid.init({ url: "&lt;%=basePath%&gt;/component/config/select.html", add: {content:"&lt;%=basePath%&gt;/admin/...

    jqgrid treegrid功能的修改

    jqgrid treegrid功能的修改

    jqgrid通用编辑规则; 下载文件; 点击图片翻转显示文字; 统计; 星际评分条; 树形结构

    jqgrid通用编辑规则 使用 editoptions ,主要用于定义勾选或者未勾选时的值,例如editoptions: { value:"Yes:No" } &lt;input type="checkbox" value="Yes" offval="No".../&gt; 当value为yes,checkbox被勾选,...

    jqGrid jsp+servlet+mysql+tomcat 主从表设计实现

    关于jqGrid 前端框架与后台交互及主从表实现的完整实例 如无下载币可访问本人博客 复制源码 http://blog.csdn.net/dfs4df5/article/details/51187065

    jqgrid+ajax

    jqgrid+ajax,使用ashx作为后台处理,json格式数据的传值,目前只有删除和一次性保存所有编辑过的行数据(但是最后编辑那行没有考虑,因为处于编辑状态,还不清楚怎样去取单元格的值)。

    Jquery表格插件jqGrid 4.3.0及其Demo

    JqGrid是一款功能强大的Jquery表格控件,支持排序,分组,分页,行内编辑,表格树,行内表格等多种功能,该版本为官方最新版,附带Demo

    jqGrid_JS_5.2.1

    实现可编辑表格功能,全面兼容各种浏览器,与jquery完善结合,排序、宽度拖动、锁定列、翻页等很多功能,可form编辑,行编辑,单元格编辑,强大查询支持,与后台完美结合,加载速度快,json支持等等

    Guriddo jqGrid.pdf

    jqGRID在数据上是支持JSON,XML,本地等多种数据格式;在功能上支持AJAX,表格排序、编辑、合计、分组表、主子表,自定义函数,自定义样式的前端表格控件。 谁用谁知道好处。 V5.3版本手册,精排版本,最新,最全说明...

    jqGrid4.7完整包

    实现可编辑表格功能,全面兼容各种浏览器,与jquery完善结合,排序、宽度拖动、锁定列、翻页等很多功能,可form编辑,行编辑,单元格编辑,强大查询支持,与后台完美结合,加载速度快,json支持等等,很多等你慢慢...

    JQGrid的用法解析(列编辑,添加行,删除行)

    本文是对JQGrid的用法--列编辑,添加行,删除行。进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

Global site tag (gtag.js) - Google Analytics