2014-04-01 57 views
0

当编辑该列的单个单元格时,需要更改jqxgrid列中的所有单元格。所以,我依次通过的“cellvaluechanged”事件中的所有单元格:jqxGrid:取消绑定/绑定单元格值changed

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;    
    } 
}); 

的问题是,它是大表过慢,因为在循环呼叫单元的每个变化再次“oncellvaluechanged”功能。

什么是这样做的更优雅的方式?我正在考虑在循环之前解除“oncellvaluechanged”的绑定,并在最后绑定它,但我不知道该怎么做。

感谢

回答

0

而不是要求你要修改的每个单元“setcellvalue”,它可能会更快,直接在DataAdapter的编辑值。你可以通过访问dataAdapter的'records'参数来实现。

然后,你将需要强制你的jqxGrid刷新数据。你可以通过调用'render'或'refresh'来做到这一点。

看到那些链接,了解更多的相关信息:

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