Ticket #2081: patch.patch

File patch.patch, 1.6 kB (added by guest, 2 years ago)
  • src/widget/FilteringTable.js

     
    123123                } 
    124124                return null;    //      HTMLTableRow 
    125125        }, 
     126        getRowByKey: function(/*String*/ key){ 
     127                //      summary 
     128                //      Finds the row in the table based on the key in the store. 
     129                var rows = this.domNode.tBodies[0].rows; 
     130                for(var i=0; i<rows.length; i++){ 
     131                        if(dojo.html.getAttribute(rows[i], "value") == key){ 
     132                                return rows[i]; //      HTMLTableRow 
     133                        } 
     134                } 
     135                return null;    //      HTMLTableRow     
     136        }, 
    126137        getColumnIndex: function(/* string */fieldPath){ 
    127138                //      summary 
    128139                //      Returns index of the column that represents the passed field path. 
     
    652663                                var a = self.store.getField(self.getDataByRow(rowA), field); 
    653664                                var b = self.store.getField(self.getDataByRow(rowB), field); 
    654665                                if(meta.sortFunction!=null){ 
    655                                         var ret = field.sortFunction(a, b); 
     666                                        var ret = meta.sortFunction(a, b); 
    656667                                } else { 
    657668                                        var ret = 0; 
    658669                                        if(a > b) ret = 1; 
     
    915926                        self.render(); 
    916927                }); 
    917928                dojo.event.connect(this.store, "onAddData", function(addedObject){ 
    918                         var row=self.createRow(addedObject); 
    919                         self.domNode.tBodies[0].appendChild(row); 
     929                        var row = self.getRowByKey(addedObject.key); 
     930                        if (!row){ 
     931                                row=self.createRow(addedObject); 
     932                                self.domNode.tBodies[0].appendChild(row); 
     933                        }else{ 
     934                                for(i in self.columns){ 
     935                                        var meta = self.columns[i]; 
     936                                        self.fillCell(row.cells[i], meta , addedObject.src[meta.field]); 
     937                                } 
     938                        } 
    920939                        self.render(); 
    921940                }); 
    922941                dojo.event.connect(this.store, "onAddDataRange", function(arr){