Javascript onSelectCell的怪异行为

Javascript onSelectCell的怪异行为,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我注意到onSelectCell中有一个奇怪的行为,而cellEdit:true 我在一个简单的表单上有两个网格,第二个网格在用户从第一个网格中选择一行后加载。两个网格都将cellEdit设置为true,我使用onSelectCell从第一个网格捕获rowid,因此我可以调用一个方法来检索相应的数据 奇怪的行为是: 在第一行选择return rowid=undefined 当我从第一个网格中选择另一行时,onSelectCell事件将前一行值分配给rowid 这种行为正常吗??我在文档中读到该事

我注意到onSelectCell中有一个奇怪的行为,而cellEdit:true

我在一个简单的表单上有两个网格,第二个网格在用户从第一个网格中选择一行后加载。两个网格都将cellEdit设置为true,我使用onSelectCell从第一个网格捕获rowid,因此我可以调用一个方法来检索相应的数据

奇怪的行为是:

在第一行选择return rowid=undefined

当我从第一个网格中选择另一行时,onSelectCell事件将前一行值分配给rowid

这种行为正常吗??我在文档中读到该事件仅适用于不可编辑的单元格;选择单元格后激发,这正是我希望它执行的操作

//第一格。。。 pGrid.jqGrid{ url:'empty.json', 数据类型:“本地”, myType:'POST', colNames:['rn','dirty','Code','Description','SPIFF Amount','GSA-SIN','Is Active Hidden','Is Active'], colModel:[ {name:'ROWID',index:'ROWID',width:50,hidden:true},//这可以删除……但我太懒了,不能这么做。 {name:'dirty',index:'dirty',宽度:50,隐藏:true}, //这是我正在单击的字段-我正在使用另一段代码禁用列中的单元格。 //即使我删除了可编辑:true,情况仍然一样。 {name:'Code',index:'Code',align:'left',width:120,search:true,editable:true}, {name:'Description',index:'Description',align:'left',width:400,search:true,editable:true}, ], jsonReader:{ root:'data',id:'Code',multiselect:false,repeatitems:false }, 行数:对, 有一次:是的, 是的, cellsubmit:'客户端阵列', 可排序:是的, ignoreCase:是的, 身高:200, rowNum:1000, 宽度:空, shrinkToFit:错, gridview:没错, emptyrecords:'没有要显示的记录', 奥尔特罗斯:错, 行列表:[], PG按钮:错误, pgtext:null, viewrecords:是的, 希德格里德:错, 是的, 寻呼机:$'productPager', onSelectCell:函数rowid、celname、value、iRow、iCol{ //这里我正在加载第二个网格 ProductCode.Main.populateProductAccountsrowid; validator=$.parseJSONProductCode.Main.AccountValidatorrowid.responseText.data[0]。CanChangeAccount; //这里我将rowid分配给一个全局变量 selectedCode=rowid; }, beforeEditCell:函数rowid、cellname、value、iRow、iCol{ originalRow=pGrid.jqGrid'getRowData',rowid; }, afterSaveCell:函数rowid、cellname、value、iRow、iCol{ //有些代码与这种情况无关 }, gridComplete:函数{ allowRowEdit; } }.jqGrid'navGrid',pager',{add:false,edit:false,del:false},{},{},{},{multipleSearch:true} .jqGrid'filterToolbar',{stringResult:true,SearchOnNet:true,defaultSearch:'cn'};;; jqGrid'filterToolbar',{clearSearch:true}; pGrid[0]。切换工具栏;
} 似乎是在触发第二个网格的gridComplete事件后设置selectedCode和validator变量。尝试更改顺序:

onSelectCell: function (rowid, celname, value, iRow, iCol) {
    // here i'm assigning the rowid to a global variable
    selectedCode = rowid;
    validator = $.parseJSON(ProductCode.Main.AccountValidator(rowid).responseText).data[0].CanChangeAccount;
    // do this last since it depends on the variables above
    ProductCode.Main.populateProductAccounts(rowid);
},

非常感谢。是的,我在代码块的末尾设置值,将它们移到前面解决问题。。。带感叹号:@stressnode真棒,很乐意帮助: