[英]jqGrid onCellSelect getGridParam selrow returning null on first click
我正在使用jqGrid,並且在單元格的第一次單擊中,sel_id為null:
function onCellSelect(rowid, iCol, cellcontent, e) {
var DownlinkIndex = 7;
var UplinkIndex = 8;
var SalCodeIndex = 3;
if (iCol == DownlinkIndex) {
var grid = jQuery('#SalesPersonList');
var sel_id = grid.jqGrid('getGridParam', 'selrow');
var myCellData = grid.jqGrid('getCell', sel_id, 'Salespersonid');
var mySalName = grid.jqGrid('getCell', sel_id, 'Name');
ShowDownLink(myCellData, mySalName);
}
if (iCol == UplinkIndex) {
var grid = jQuery('#SalesPersonList');
var sel_id = grid.jqGrid('getGridParam', 'selrow');
var myCellData = grid.jqGrid('getCell', sel_id, 'Salespersonid');
var mySalName = grid.jqGrid('getCell', sel_id, 'Name');
ShowUpLink(myCellData, mySalName);
}
}
事件方法被觸發。 正在填充4個參數。 但是,第一次單擊時,它始終為空。 然后在第二次單擊上將其設置為第一次單擊。 然后將第3次點擊設置為第2次點擊。 奧列格,如果您可以提供幫助,我將不勝感激。
看了一堆Oleg的帖子之后。 我將代碼移到onBeforeSelect的另一個函數上。
function onBeforeSelectRow(rowid, e){
console.log(rowid);
console.log(e);
var grid = jQuery('#SalesPersonList');
iCol = $.jgrid.getCellIndex($(e.target).closest("td")[0]),
cm = grid.jqGrid("getGridParam", "colModel");
console.log(cm);
if (cm[iCol].name === "Uplines") {
var myCellData = grid.jqGrid('getCell', rowid, 'Salespersonid');
var mySalName = grid.jqGrid('getCell', rowid, 'Name');
ShowUpLink(myCellData, mySalName);
return true;
}
if (cm[iCol].name === "Downlines") {
var myCellData = grid.jqGrid('getCell', rowid, 'Salespersonid');
var mySalName = grid.jqGrid('getCell', rowid, 'Name');
ShowDownLink(myCellData, mySalName);
return true;
}
return false;
}
自從我不再通過牢房以來,需要進行一些調整。 現在,我對代碼有了更多的了解,我敢打賭,我可以只使用傳遞給onCellSelect的rowid參數。
我只是嘗試過,是的,它(使用onCellSelect中的rowid)有效。
使用var grid = jQuery(this); 而不是var grid = jQuery('#SalesPersonList');
和var myCellData = grid.jqGrid('getCell',rowid,'Salespersonid'); 代替
var myCellData = grid.jqGrid('getCell',sel_id,'Salespersonid');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.