0

我正在使用 jqGrid,在第一次单击单元格时,sel_id 为空:

 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 次单击。奥列格,如果你能提供帮助,我将不胜感激。

4

2 回答 2

0

在阅读了一堆 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)有效。

于 2013-07-03T21:30:28.327 回答
0

使用 var grid = jQuery(this); 而不是 var grid = jQuery('#SalesPersonList');

和 var myCellData = grid.jqGrid('getCell', rowid, 'Salespersonid'); 代替

var myCellData = grid.jqGrid('getCell', sel_id, 'Salespersonid');

于 2015-04-29T10:10:06.890 回答