
参考jqGrid的源代码,getRowData的实现方法是遍历tr获取td的innerhTML。 getRowData在单元格和行编辑模式下受到影响,在表单编辑模式没问题,因为表单没有直接修改jqGrid生成输入对象,而是在新的控件中生成编辑对象。 要想在单元格和行编辑模式下getRowData返回实际的数据行,而不是包含html代码的内容,可以参考下面的。
对于单元格编辑,需要先还原或者保存此单元格,然后再调用getRowData方法,实现如下
1、给grid添加beforeEditCell事件,声明2个window域的变量记录单元格的行号和列号 beforeEditCell:function(rowid,cellname,v,iRow,iCol){ lastrow = iRow; lastcell = iCol; } 2、在调用getRowData获取数据前,先保存/还原单元格 $("#grid")jqGrid("saveCell",lastrow,lastcell);//保存单元格,切换为文本模式 //或者===> //$("#grid")jqGrid("restoreCell",lastrow,lastcell);//还原单元格,切换为文本模式 var recs=$("#grid")jqGrid("getRowData"); 对于行编辑模式,原理一样,还原正在编辑的行或者保存数据到内存中 1,调用editRow时传递oneditfunc事件处理函数保存正在编辑的行的id $('#list4')jqGrid('editRow', rowid, true, function (rowid) { windowrowid=rowid; }); 2,在调用getRowData获取数据前,先保存/还原正在编辑的数据行 jQuery("#grid_id")saveRow(rowid, false, 'clientArray'); //==>或者还原 //jQuery("#grid_id")restoreRow(rowid); var recs=$("#grid")jqGrid("getRowData");
首先,你可以得到的ROWID选定行与尊重getGridParam法“selrow'作为参数,然后你可以用getCell来获得相应的列中的单元格的值:
在“COLUMNNAME”应该是你在使用相同的名称'名'的财产colModel。如果从选定行的很多列需要的值,你可以使用getRowData而不是getCell。
您还可以使用这种方式
我想补充,也可以检索jqGrid的单元格的值的基础上,加ROWID列索引(而不是列名):
这样,抓取在第四列中的值(列序号#3),用于与主密钥ID 1234的行中,我们可以使用这样的:
顺便说一句,在一个完全无关的话题(但请不要投我失望):
我不知道就可以了,很容易,链接文本框,你jqGrid的,所以你的用户可以执行即时搜索,而无需打开搜索对话框。
要做到这一点,你需要一点点的HTML是这样的:
和一些JavaScript这样的:
这是一个真正的游戏改变了我那真叫jqGrid的更加人性化。
用户可以立即开始输入自己的搜索字符串,而不需要打开搜索对话框,记得更改运营商“包含”,然后开始打字,再关闭搜索对话框。
jqgrid的获取返回的数据源后是通过js把数据转换成了dom,通俗说就是<tr><td>内容1</td></tr>的html然后赋予到table对象的,让浏览器知道它是一个table的内容,浏览器就显示出来了。不导出数据想看数据源,IE的话可以使用fiddler监控>
改变返回的数据信息就行
如返回的是json格式的数据,下面是每个列的标注,其中Expanded为true就是展开
"MenuId", "MenuName", "Url", "level", "parent", "IsLeaf", "Expanded", "Loaded"
列
{
"page": 1,
"records": 10000,
"total": 1,
"rows": [
{
"id": 0,
"cell": [
"510",
"1",
"",
"1",
"0",
false,
true,
true
]
},
{
"id": 1,
"cell": [
"511",
"11",
"",
"2",
"510",
false,
true,
true
]
},
{
"id": 2,
"cell": [
"51101",
"111",
"ur111",
"3",
"511",
true,
true,
true
]
},
{
"id": 3,
"cell": [
"51102",
"112",
"url112",
"3",
"511",
true,
true,
true
]
},
{
"id": 42,
"cell": [
"12",
"报表",
"",
"2",
"510",
false,
true,
true
]
},
{
"id": 43,
"cell": [
"121",
"test",
"test",
"3",
"512",
true,
true,
true
]
},
{
"id": 44,
"cell": [
"122",
"rtest",
"test",
"3",
"512",
true,
true,
true
]
}
]
}
function formatState(cellValue, options, rowObject) {
var rowId = optionsrowId;
var html = cellValue;
if (html != "0") {
html = '<label style="color: red;" >' + cellValue + '</label>';
}
else {
html = '<label>' + cellValue + '</label>';
}
return html;
}
这是获取列中的值。首先绑定需要查看data的列头,这样就可以看row data中过的值了。如果你想获取一行的数据,edit:true时,选中的行就可以获取到啊。不知道是不是你的答案,虽然会jqgrid,可是不知道你的问题究竟是啥
以上就是关于怎样获取编辑后的jqgrid的值全部的内容,包括:怎样获取编辑后的jqgrid的值、jqgrid怎么获取所有的行数据设置背景颜色、怎么获取jqgrid中的multiselect等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)