jqxGrid:在cellvaluechanged上取消绑定/绑定

时间:2014-04-01 02:14:34

标签: jquery jqxgrid

编辑该列的单个单元格时,我需要更改jqxgrid列中的所有单元格。所以,我循环遍历所有单元格" cellvaluechanged"事件:

var ri = -1;
$("#jqxGrid").on('cellvaluechanged', function (event) {
    if(ri != -1) return;
    var column = args.datafield;
    if(column == 'min'){
        var row = args.rowindex;
        if(ri == -1)ri = row;
            var griddata = $("#jqxGrid").jqxGrid('getdatainformation');
            var v = args.value;         
            for (var i = 0; i < griddata.rowscount; i++) {
                if(i != row){
                    $("#jqxGrid").jqxGrid('setcellvalue', i, 'min', v);
                }   
            }           
        ri = -1;            
    }
});

问题在于它对于大型表来说太慢了,因为循环中每个单元格的更改都会调用&#34; oncellvaluechanged&#34;再次发挥作用。

这样做更优雅的方法是什么?我想要解开&#34; oncellvaluechanged&#34;在循环之前将其绑定在最后,但我不知道该怎么做。

由于

1 个答案:

答案 0 :(得分:0)

而不是调用&#39; setcellvalue&#39;对于要编辑的每个单元格,直接在dataAdapter中编辑值可能会更快。你可以通过访问&#39;记录来做到这一点。 dataAdapter的参数。

然后,您需要强制jqxGrid刷新数据。你可以通过调用&#39; render&#39;来做到这一点。或者&#39;刷新&#39;。

有关更多信息,请参阅这些链接:

http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdataadapter/jquery-data-adapter.htm

http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxinput/jquery-input-api.htm