我初始化datatable是可以得,但是我想通过table里面一个操作传入新的数据源地址,用了fnReloadAjax去刷新,但是出现了Cannot read property 'length' of undefined的错误
<table class="am-table am-table-striped am-table-hover table-main " id="myfile-table" cellspacing="0" width="100%">
<thead>
<tr>
<th><input type="checkbox" id="checkJoiner" /></th>
<th></th>
<th>name</th>
<th>fileSize</th>
<th>createDate</th>
</tr>
</thead>
</table>
<script type="text/javascript" src="https://cdn.datatables.net/plu ... "></script>
<script type=" text/javascript ">
<!--
$(function(){
initDataTable();
});
var table;
function initDataTable(){
$.ajax({
url: '${ctx}/myfile/getFileJsonData',
type: 'GET',
dataType: 'json',
success: function (data) {
assignToEventsColumns(data);
}
});
}
function reloadDataTable(link){
table.fnReloadAjax(link);
}
function assignToEventsColumns(data) {
table = $('#myfile-table').dataTable({
"bAutoWidth ": false,
"aaData ": data,
"sScrollY ": 350,
"dom ": 'ti',
"bSort ":false,
//"bFilter ": true, //搜索栏
"bPaginate ":false,
"aoColumnDefs ": [
{
"aTargets ": [0],
"bSearchable ": false,
"bSortable ": false,
"bSort ": false,
"mData ": "id ",
"mRender ": function (event) {
return '<input class="childCheck " type="checkbox " id="childCheckBoxes " value=" ' + event + ' ">';
}
},
{
"aTargets ": [1],
"bSearchable ": false,
"bSortable ": false,
"bSort ": false,
"mData ": "suffix ",
"mRender ": function (data, type, full) {
if(full.isDir=='1'){
return '<img alt="floder " src="${ctx}/resources/images/drive_30x30/folder_30x30.png ">';
}else{
return '<img alt="file " src="${ctx}/resources/images/drive_30x30/ '+data+'_30x30.png ">';
}
}
},
{
"aTargets ": [2],
"mData ": "name ",
"mRender ": function (data, type, full) {
if(full.isDir=='1'){
var path=full.parentPath+full.fileName;
return "<a href=\ "javascript:void(0)\" onclick=\
"reloadDataTable('${ctx}/myfile/getFileJsonData?path=/"+path+ "')\">
"+full.fileName+"</a>";
}else{
return data;
}
}
},
{
"aTargets": [3],
"mData": "fileSize",
"mRender": function (event) {
return getFileSize(event);
}
},
{
"aTargets": [4],
"mData": "createDate",
"mRender": function (event) {
var newTime = new Date(event);
return newTime.toLocaleDateString();
}
}
],
});
}
//-->
</script>
我猜是你给的 link 返回的数据有问题,或者 link 本身就有问题。
建议你在开发者工具中监视一下 Network 看看调用 Ajax 时候的链接 URL,参数,以及输出是否正确。
至于 datatable 我也没用过,就不好说啥了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。