Javascript JQuery-jqGrid:setRowData-不在参数中拾取变量

Javascript JQuery-jqGrid:setRowData-不在参数中拾取变量,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我一直在使用jqGrid,我有点不明白为什么下面的代码不能按预期运行,这一行代码只是使用格式化程序来更新一行—如果我在ID参数中插入一个值,它就可以正常工作(请参见注释行)—如果我使用一个变量,它就无法正常工作 我错过什么了吗 行的ID是数字 使用格式化程序从colModel调用以下命令-> //formatter typeHighlight = function(cellvalue,options,rowdata){ if(cellvalue == "I

我一直在使用jqGrid,我有点不明白为什么下面的代码不能按预期运行,这一行代码只是使用格式化程序来更新一行—如果我在ID参数中插入一个值,它就可以正常工作(请参见注释行)—如果我使用一个变量,它就无法正常工作

我错过什么了吗

行的ID是数字

使用格式化程序从colModel调用以下命令->

        //formatter
    typeHighlight = function(cellvalue,options,rowdata){
        if(cellvalue == "Invoice Required" || cellvalue == "Finished"){

            var rowID = options.rowId; //gets the row id        
            setRow(rowID); //sets the row colour

            return cellvalue;
        }else{
            return cellvalue;
        }
    }

    setRow = function(rowID){
$("#list2").jqGrid('setRowData',rowID,false,'rowDone'); //new api
//$("#list2").setRowData(rowID,false,'rowDone');  //old method
//("#list2").setRowData(1323,false,'rowDone'); //note the row id manually inserted

    }
如上所述,当我手动添加行id时——它起作用了,唯一失败的是当我尝试以编程方式添加行id时——它在firebug控制台中作为正确的值显示

谢谢你的帮助

看看。如果它不能解决你的问题,那么发布更多信息。例如,
rowDone
CSS类的定义,
colModel
的定义等等


如果您在问题中包含足够的信息来重现您的问题,那么问题可以很快得到解决。

我随后在firebug中进行了测试,它使用了一个变量,这是一种奇怪的范围问题吗?谢谢Oleg,我的解决方案就是基于此。似乎发生的情况是,在加载网格后应用setRowData,这意味着变量超出范围(至少在我看来是这样)。我能够通过使用格式化程序将值发送到全局数组,然后通过调用setRowData在数组中迭代,从而绕过这个问题,这一点非常有效。唯一的问题似乎是当将setRowData与自定义格式化程序直接结合使用时,变量的作用域不正确。