2010-07-21 17 views

उत्तर

6

मान लीजिए आप jQuery

उपयोग कर रहे हैं
var grid; 
$(function() { 
    // init options, load data 
    ... 

    var columns = []; 
    columns[0] = { 
    id: 'id', 
    name: '#', 
    field: 'id', // suppose you have an id column in your data model 
    formatter: function (r, c, id, def, datactx) { 
     return '<a href="#" onclick="RemoveClick(' + id + ',' + r + ')">X</a>'; } 
    } 
    // init other columns 
    ... 

    grid = new Slick.Grid($('#gridDiv'), data, columns, options); 
} 
function RemoveClick(databaseId, gridRow) { 
    // remove from serverside using databaseId 
    ... 
    // if removed from serverside, remove from grid using 
    grid.removeRow(gridRow); 
} 
-3

हाय मैं SlickGrid

समारोह deletefila (numrow) {

की हटाने की पंक्ति के लिए इस स्क्रिप्ट का इस्तेमाल किया कर रहा हूँ
alert("delete row"+numrow); 

    data.splice(numrow,1); 

    grid.removeAllRows(); 

    grid.render(); 

     //grid.removeRow(5); 

     //grid.updateRowCount(); 

     //and then invalidate and re-render the grid by calling grid.removeAllRows() followed by grid.render(). 

}

+0

Uncaught TypeError का उपयोग करें: ऑब्जेक्ट # कोई विधि है 'removeAllRows' – Dryadwoods

16

आप एक DataView का उपयोग कर रहे हैं, तो निम्न का उपयोग करें: आप केवल पंक्ति नंबर पता है

DataView.deleteItem(RowID);//RowID is the actual ID of the row and not the row number 
Grid.invalidate(); 
Grid.render(); 

, आप उपयोग कर theRowID प्राप्त कर सकते हैं:

var item = DataView.getItem(RowNum);//RowNum is the number of the row 
var RowID = item.id 
5

इस तरह मैं इसे करता हूं (हालांकि किसी भी डेटा प्रदाता का उपयोग नहीं कर रहा है):

//assume that "grid" is your SlickGrid object and "row" is the row to be removed 
var data = grid.getData(); 
data.splice(row, 1); 
grid.setData(data); 
grid.render(); 

मैं इसे एक लाइव प्रोजेक्ट में उपयोग करता हूं और यह अच्छी तरह से चलता है। बेशक, यदि आप कई पंक्तियों को हटाना चाहते हैं तो कुछ बदलाव किए जाने चाहिए, या यदि आप डेटा प्रदाता का उपयोग करते हैं तो आप शायद डेटा प्रदाता से पंक्ति को हटाना चाहते हैं और फिर SlickGrid को पंक्तियों को रीफ्रेश करें।

आशा है कि यह मदद करता है :)

-2

निश्चित रूप से हाँ, मैं इसे इस तरह

var selrow = grid.getSelectedRows(); 
data.splice(selrow, 1); 
grid.invalidateAllRows(); 
grid.render(); 

अभिवादन

+0

"Uncaught TypeError: Obj ect # में कोई तरीका नहीं है 'removeAllRows' ' – Dryadwoods

1
var rowsToDelete = grid.getSelectedRows().sort().reverse(); 
for (var i = 0; i < rowsToDelete.length; i++) { 
    data.splice(rowsToDelete[i], 1); 
} 
grid.invalidate(); 
grid.setSelectedRows([]); 
2
function deleteRows() { 
    var selectedIndexes = grid.getSelectedRows().sort().reverse(); 
    var result = confirm("Are you sure you want to delete " + grid.getSelectedRows().length + " row(s)?"); 
    if (result) { 

     $.each(selectedIndexes, function (index, value) { 
     var item = dataView.getItem(value); //RowNum is the number of the row 
     if (item) 
      dataView.deleteItem(item.id); //RowID is the actual ID of the row and not the row number 
     }); 

     grid.invalidate(); 
     grid.render(); 
    } 
    } 
संबंधित मुद्दे