我使用的是jqgrid版本4.6.0 在我问了一个问题后,我开始在jqGrid中使用getLocalRow This Question
这是我准备的示例代码当有人点击按钮时我删除了row2但是当我这样做时('getLocalRow',2)它给了我第3行? getLocalRow中的rowId参数不是网格的rowID,这是关键吗? getRowData按预期工作,但我不想使用它,因为它给我提供了This Question中所述的字符串,并在This Answer中回答了
Here是要测试的jsFiddle示例。
deleteRow = function()
{
$("#list").jqGrid('delRowData', 2);
var row2 = $("#list").jqGrid('getLocalRow', 2);
var row3 = $("#list").jqGrid('getLocalRow', 3);
var row2Corrent = $("#list").jqGrid('getRowData', 2); // Empty
var row3correct = $("#list").jqGrid('getRowData', 3);// gives {id:3, DocGroupName: "name3", DocList: "list3", Mandatory: "No"},
}
"use strict";
var mydata = [
{id:1, DocGroupName: "name1", DocList: "list1", Mandatory: "Yes"},
{id:2, DocGroupName: "name2", DocList: "list2", Mandatory: "No"},
{id:3, DocGroupName: "name3", DocList: "list3", Mandatory: "No"},
{id:4, DocGroupName: "name4", DocList: "list4", Mandatory: "Yes"},
];
$("#list").jqGrid({
//url:'php.scripts/customers.get.php',
//datatype: 'xml',
//mtype: 'POST',
datatype: "local",
data: mydata,
height: "auto",
colNames: ['id', 'Document Group Name','Document Name','No of Mandatory'],
colModel :[
{name:'id',key:true, index:'id', width:55},
{name:'DocGroupName', index:'DocGroupName', width:90, editable: true,edittype: 'select',
},
{name:'DocList', index:'DocList', width:90, editable: true },
{name:'Mandatory', index:'Mandatory', width:90, editable: true}
],
pager: '#pager',
rowNum:10,
rowList:[10,20,30],
sortname: 'idcustomers',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'Customers',
cellEdit: true,
cellsubmit: 'clientArray',
afterSaveCell: function(rowid,name,val,iRow,iCol) {
if(name=='DocGroupName')
{
var row = $('#list').jqGrid('getRowData',currentRow);
row.DocList='';
var row = $('#list').jqGrid('setRowData',currentRow,row);
}
},
beforeSaveCell: function(rowid,name,val,iRow,iCol) {
// var row = $("#list").getRowData(rowid);
var row = $('#list').jqGrid('getRowData',rowid);
currentRow= rowid;
},
});
答案 0 :(得分:0)
我发现问题的唯一方法是使用
getRowData(rowId);
由于getrowdata将所有内容都作为字符串提供,因此我需要进行一些数据转换,例如
var intValue = parseInt(intField);
当我想要字符串或
的id时 var trueFalse= parseBool(boolField);
function parseBool(val) {
return val === true || val === "true"
}
当我想要来自字符串的布尔值时。
这是一项额外的工作,但这是我唯一的选择。