C# 使用jquery在两个asp表之间拖放数据
我需要在asp.net C#中做一个规划应用程序,需要拖放才能将数据从一个表移动到另一个表。2表是在代码隐藏中动态生成的。我需要能够修改数据,而无需每次拖放数据时刷新页面,因此我只在修改表时在客户端工作 我使用可拖放jquery ui函数在表之间移动数据,但当我需要将表导出到.xls中或将其保存在数据库中时,拖放数据似乎不在表中,即使我可以在表显示中看到它们 因此,我想知道如何将拖放的数据添加到表中,而不仅仅是移动div 以下是我的javascript代码:C# 使用jquery在两个asp表之间拖放数据,c#,jquery,asp.net,drag-and-drop,C#,Jquery,Asp.net,Drag And Drop,我需要在asp.net C#中做一个规划应用程序,需要拖放才能将数据从一个表移动到另一个表。2表是在代码隐藏中动态生成的。我需要能够修改数据,而无需每次拖放数据时刷新页面,因此我只在修改表时在客户端工作 我使用可拖放jquery ui函数在表之间移动数据,但当我需要将表导出到.xls中或将其保存在数据库中时,拖放数据似乎不在表中,即使我可以在表显示中看到它们 因此,我想知道如何将拖放的数据添加到表中,而不仅仅是移动div 以下是我的javascript代码: $_dropEnd = null;
$_dropEnd = null;
$(function () {
$(".drag").draggable({
helper: "clone",
revert: 'invalid',
stop: function (event, ui) {
$(this).appendTo($_dropEnd);
$_dropEnd = null;
}
});
$(".drop").droppable({
accept: ".drag",
tolerance: "touch",
drop: function (event, ui) {
$_dropEnd = this;
}
})
});
当您创建ASP.NET控件(即HTML表格或ASP.NET网格视图)时,它的状态在提供给页面之前保存在服务器端,通过客户端对它所做的任何更改都不会通过回发保留,因此数据看起来不会移动 要解决这个问题,一个选择是使用Ajax。您可以将表的HTML发送到Web服务,以便处理和保存数据
$('#save').click(function() {
// Creates an Object to store the HTML of the two tables
var o = new Object();
o.table1 = $('#htmlTable1-Container').html();
o.table2 = $('#htmlTable2-Container').html();
// Creates a JSON String for this Object
var x = JSON.stringify(o);
// In your Web Service create a Method that has the parameters (string table1, string table2)
$.ajax({
url: "WEB SERVICE LINK",
data:x,
success: function() {
// Ajax Call Successful
},
error: function() {
// Ajax Call Failed
}
});
});
另一种选择(这有点尴尬,也不是最好的主意)是将表的HTML存储在启用输入的ASP.NET控件(即文本框)中,然后您可以在回发时检索它并在服务器端处理数据
// Stores the HTML of the two tables in Two ASP.NET Textboxes for retrieval by the Server on postback.
$('#save').click(function() {
$('#<%= tb1.ClientID %>').val($('#htmlTable1-Container').html());
$('#<%= tb2.ClientID %>').val($('#htmlTable2-Container').html());
});
//将两个表的HTML存储在两个ASP.NET文本框中,以便服务器在回发时检索。
$(“#保存”)。单击(函数(){
$('#').val($('#htmlTable1容器').html());
$('#').val($('#htmlTable2容器').html());
});
因此,在第一种情况下,数据直接保存在数据库中,或者通过AJAX传递,存储在表中,然后AJAX再次发送表?使用AJAX方法时,将表的HTML发送到该方法。在这种方法中,您必须手动解析该HTML以获取需要存储在数据库中的值。