:: Forum >> Version 1 >>

Data Changed - Continued Topic


Prev topic - /javascript.forum.1788.14/

Problem - grid.refresh() was crashing when grid was sorted before changing data...

Suggested solution for CSV & XML was this patch

Active.HTTP.Request.prototype.response = function(data){ 
    if (
this.$owner) { 
        
this.$owner.setRowProperty("value", function(i){return i}); 
        
this.$owner.setRowProperty("order", function(i){return i}); 
        
this.$owner.setRowProperty("count"this.getCount()); 
        
this.$owner.setSortProperty("index"null); 
        
this.$owner.refresh(); 
    } 

 
We have similar problems in JS Array data

Here is the work-around patch I'm using.

Active.Controls.Grid.prototype.setAction("dataChanged", function() {
    
// set data count
    
var newCount this.currentRoles.length;
    
this.setDataProperty("count"newCount);
    
// clear internal row state
    
var rowValues = [];
    for(var 
i=0newCount; ++i) { rowValues.push(i); }
    
this.setRowProperty("values"rowValues);
    
this.setSortProperty("index"null);
    
// clear selection - if required
    
this.setSelectionProperty("index", -1);
    
this.setSelectionProperty("values", []);
  
    
this.refresh();
});
 
This is how it's being used.
...
function 
changeData() {
    
// change the myData - add/edit/delete
    // tell grid about new size (remember using setDataProperty)
    
obj.setDataProperty("count"myData.length);
    
obj.action("dataChanged");
}
...
 
My question, How can we invoke this action internally when obj.setDataProperty("count", myData.length); is called.

By the way - I can live with this extra line of code after every obj.setDataProperty("count", myData.length);
Sudhaker Raj
Wednesday, August 25, 2004
Copy paste problem - hehe

Here is the correct work-around patch I'm using.

Active.Controls.Grid.prototype.setAction("dataChanged", function() {
  var 
newCount this.getDataProperty("count");
  
// clear internal row state
  
var rowValues = [];
  for(var 
i=0newCount; ++i) { rowValues.push(i); }
  
this.setRowProperty("values"rowValues);
  
this.setSortProperty("index"null);
  
// clear selection - if required
  
this.setSelectionProperty("index", -1);
  
this.setSelectionProperty("values", []);

  
this.refresh();
});
 
Sudhaker Raj
Wednesday, August 25, 2004



This topic is archived.

Back to support forum

Forum search