基本上我想在一页上有两个表。在表1中,我想存储与区域有关的信息,在表2中,我想显示与被单击区域有关的人员信息。
我的后端使用Spring MVC生成数据。
表1以这种方式启动:
function createTable1() {
tableOne = $('#table').dataTable({
ajax: function (data, callback, settings) {
var param = {};
param.type = "3";
$.ajax({
type: "post",
url: '/area/getareainfo',
dataType: "json",
data: param,
success: function (result) {
if (result) {
var returnData = {};
returnData.data = result;
callback(returnData);
}
}
});
},
columns: [
{"data": "label"},
{"data": "value"},
{"data": "count" },
{"data": "count" },
{"data": "count"}
]
});
}
我有一段非常相似的代码来创建表2,但我不知道它是否会正常工作(除非我将destroy选项设置为true)
$('#table tbody').on('click', 'tr', function () {
createTable2();
});
我的任务是编写一个控制器,该控制器中继表1和表2的数据,以某种方式连接表1和表2之间的数据,并显示并工作两个数据表。我应该如何构造呢?(我对编写Spring MVC的经验为零,并且不知道如何使用ajax从表1信息和后端获取表2数据)
非常感谢您的投入!
无需销毁表2,可以改用table2.ajax.reload()!
另外,无需在table1和table2之间连接数据。您可以为两个表使用单独的Datatables定义,并为两个表使用单独的AJAX url返回JSON。例如,假设您的table1的JSON如下所示:
{
"data": [{
"label": "1",
"value": "2",
"count": "3"
},
{
"label": "11",
"value": "22",
"count": "33"
}
]
}
然
后```
,您的第二个数据表初始化代码可以如下:
```js
tableTwo = $('#table2').dataTable({
ajax: "/staff/getStaffInfoForArea?"+areaCode,
columns: [
//your columns
]
});
哪里“ / staff / getStaffInfoForArea?” 是您的服务器端URL,附加有areaCode请求参数,而areaCode是全局javascript变量。您必须将单击信息的行存储在areaCode变量中,如下所示:
$('#table tbody').on('click', 'tr', function () {
var rowSelected = tableOne.row({selected: true}).data();
areaCode = rowSelected.label //assuming 'label' is the key which store your area specific info
tableTwo.ajax.reload();
});
在Spring MVC方面,用于获取表2数据的Controller方法如下所示:
@RequestMapping(value = "/staff/getStaffInfoForArea", method = RequestMethod.GET)
public @ResponseBody String getPaginatedSiteIdents(@RequestParam String areaCode) {
//put all your Java code to retrieve staff info for area here
//and return a JSON string with "data" array
}
当然,这里有很多细节您需要注意。希望这给您一个起点!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。