我必须将jtable中的选定行发送到servlet以读取值并将它们全部显示在另一个jtable中。但问题是,如果我选择多行,它会在不同的请求中将这些行发送到servlet,因此我只能使用列一次一行,但我想在servlet中一次使用所有行。我写的代码是
$(document).ready(function() {
$('#PersonTableContainer').jtable({
title : 'Selected Table metadata',
selecting : true,
multiselect : true,
selectingCheckboxes : true,
actions : {
listAction : 'meta?action=list',
},
fields : {
columnname : {
title : 'COLUMN NAME',
key : true,
width : '40%',
list : true,
create : true
},
datatype : {
title : 'DATA TYPE',
width : '40%',
edit : false
},
columnlength : {
title : 'LENGTH',
width : '40%',
edit : true
}
}
,
selectionChanged: function () {
var $selectedRows = $('#PersonTableContainer').jtable('selectedRows');
$selectedRows.each(function () {
var record = $(this).data('record');
var columnname = record.columnname;
var datatype = record.datatype;
var columnlength = record.columnlength;
$.get('meta?action=dataload', {
columnname : columnname,datatype:datatype,columnlength:columnlength
}, function(response) {
});
});
}
});
$('#PersonTableContainer').jtable('load');
对于servlet,它正在为每个选择发送一个请求,但我希望将所有行发送到 servlet在单个请求中,如果不可能,我会在jsp中给出一个“send”按钮,然后这个请求将携带所有选定的行......
答案 0 :(得分:0)
通过处理selectionChanged事件,你不会在用户完成的每一行选择/取消选择操作上发送所有行吗?
我是这样做的,在我的情况下通过按钮点击,但我想你可以从selectionChanged事件处理程序中调用相同的函数
function sendSelectedRows(){
var selectedRows = $('#tableContainer').jtable('selectedRows');
selectedRows.each(function(){
var record = $(this).data('record');
selectedRowsData.push(record);
});
myjsonpost("someserversidepage.php?; ?>",encodeURIComponent(JSON.stringify(selectedRowsData)));
}
function myjsonpost(path, params, method) {
method = method || "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "Record");
hiddenField.setAttribute("value", params);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
希望它有所帮助。