2015-05-06 173 views
7

我在項目中使用Bootstrap-Table,我想將行向上或向下移動。在可啓動的情況下向上或向下移動行

我有這些動作事件:

window.actionEvents = { 
'click .up': function (e, value, row, index) { 
var thisrow = $(this).parents("tr:first"), 
thisrow.prev().data('index', rowindex); 
}, 
'click .down': function (e, value, row, index) { 
var thisrow = $(this).parents("tr:first"); 
thisrow.insertAfter(thisrow.next()); 
}, 
} 

它移動屏幕上的行,但它不工作真的以及行指數沒有發生變化...

於是,我就改變行.data('index')但它不起作用...

有人成功移動行嗎?

+0

你可以提供一個小提琴??? –

+0

這裏是小提琴:https://jsfiddle.net/dfpo899p/如果您通過單擊+或 - 移動行並按下按鈕,您可以看到數據保持不變,並且如果我通過示例添加刪除按鈕,則會導致問題。 – Amandine

回答

5

這裏是東西:

小提琴https://jsfiddle.net/dfpo899p/1/

的js

window.actionEvents = { 
    'click .up': function (e, value, row, index) { 
     var source = JSON.stringify($('#table').bootstrapTable('getData')[index]); 
     var target = JSON.stringify($('#table').bootstrapTable('getData')[index - 1]); 
     $('#table').bootstrapTable('updateRow', {'index':index - 1, 'row': JSON.parse(source)}); 
     $('#table').bootstrapTable('updateRow', {'index':index, 'row': JSON.parse(target)}); 
     }, 
    'click .down': function (e, value, row, index) { 
     var source = JSON.stringify($('#table').bootstrapTable('getData')[index]); 
     var target = JSON.stringify($('#table').bootstrapTable('getData')[index + 1]); 
     $('#table').bootstrapTable('updateRow', {'index':index + 1, 'row': JSON.parse(source)}); 
     $('#table').bootstrapTable('updateRow', {'index':index, 'row': JSON.parse(target)}); 
     } 
} 
+0

謝謝yenne這是按預期工作:) – Amandine