簡體   English   中英

jqGrid onCellSelect getGridParam首次單擊時返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM