目前我正在使用表拖放插件(http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/)来实现我的拖放功能GridView行。
可能,我将不得不处理Drop事件并将新的行顺序发送到服务器,但我不知道如何做到这一点。
请记住,行顺序表示GridView中显示的记录的优先级。因此,新的行顺序将在Drop事件之后存储在数据库中。
这是jquery代码:
function load_lazyload() {
$("#ContentPlaceHolder1_GridView").tableDnD({
onDragClass: "GbiHighlight",
onDrop: function (table, row) {
var rows = table.tBodies[0].rows;
var debugStr = "Row dropped was " + row.id + ". New order: ";
for (var i = 0; i < rows.length; i++) {
debugStr += rows[i].id + " ";
}
$("#debugArea").html(debugStr);
},
onDragStart: function (table, row) {
$("#debugArea").html("Started dragging row " + row.id);
}
});
}
如果有人可以指导我找到这个要求的解决方案,我会非常感激。
答案 0 :(得分:0)
onDrop事件,您可以进行ajax调用并将debugStr发送到服务器以更新新的行顺序。
之类的东西$("#ContentPlaceHolder1_GridView").tableDnD({
onDrop: function(table, row) {
var rows = table.tBodies[0].rows,
newOrder = '';
for (var i = 0; i < rows.length; i++) {
newOrder += rows[i].id + " ";
}
$.ajax({
url: 'server_method',
data: {
newOrder: newOrder
}
});
}
});
如果需要,您可以在ajax调用中添加成功和错误处理程序。
答案 1 :(得分:0)
以下文章将详细解释问题的答案:
http://aspdotnet-example.blogspot.com/2011/10/gridview-reorder-row-drag-and-drop.html
希望它有所帮助!