gpt4 book ai didi

javascript - TypeError : oTable. fnReloadAjax 不是函数 - DataTables

转载 作者:行者123 更新时间:2023-11-29 21:57:43 25 4
gpt4 key购买 nike

我想我不会再遇到 dataTables 的问题,因为它现在可以正常工作,即使是刷新也是如此。

有一段时间它在某些地方有效,但在某些地方它只是给出了这个愚蠢的错误。

TypeError: oTable.fnReloadAjax is not a function

好吧,我有一个在表中添加新数据的函数,成功后我想刷新数据表。

它确实适用于其他 View ,但现在当我创建此 View 时,它不起作用。

我正在使用 Ignited Datatables。

我有一个包含数据表脚本的 common.js 文件。这个脚本工作正常。

function commonDataTables(selector,url,aoColumns){
var responsiveHelper;
var breakpointDefinition = {
tablet: 1024,
phone : 480
};
oTable = selector.dataTable({
sPaginationType: 'bootstrap',
oLanguage : {
sLengthMenu: '_MENU_ records per page'
},
"autoWidth" : false,
"aoColumns":aoColumns,
"bServerSide":true,
"bProcessing":true,
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"sAjaxSource": url,
"iDisplayLength": 25,
"aLengthMenu": [[2, 25, 50, -1], [2, 25, 50, "All"]],
'fnServerData' : function(sSource, aoData, fnCallback){
$.ajax ({
'dataType': 'json',
'type' : 'POST',
'url' : sSource,
'data' : aoData,
'success' : fnCallback
}); //end of ajax
},
'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
$(nRow).attr("data-id",aData[0]);
responsiveHelper.createExpandIcon(nRow);
return nRow;
},
fnPreDrawCallback: function () {
// Initialize the responsive datatables helper once.
if (!responsiveHelper) {
responsiveHelper = new ResponsiveDatatablesHelper(selector, breakpointDefinition);
}
},
fnDrawCallback : function (oSettings) {
// Respond to windows resize.
responsiveHelper.respond();
}
});
}

然后在我的 Codeigniter View 文件中。

    oTable = '';
//Data Tables Script Here.
var selector = $('#ManageTabs');
var url = "{{base_url()}}admin/configurations/listTabs_DT/";
var aoColumns = [
/* ID */ {
"bVisible": false,
"bSortable": false,
"bSearchable": false
},
/* Tab Name */ null,
/* Tab Order */ null,
/* Tab Desc */ null,
/* Actions */ null
];
commonDataTables(selector,url,aoColumns);
//End Of dataTables Script..

我使用 oTable 作为全局变量,所以在 document.ready 函数之外定义了 oTable

var oTable;

我知道使用全局变量是一种不好的做法,但我想找到一种解决方法来使数据表刷新所有数据。

好吧,这个全局变量方法确实适用于 1 个 View ,但在下一个 View 中,我得到了我已经告诉过你的错误。

这里,下面是按钮的代码,它应该成功地履行了它的职责,但它却给出了错误..

            $('#createTabBtn').on('click', function(e){
//e.stopImmediatePropagation();
e.preventDefault();
var selector = $('#createTabModelForm');
HRS.formValidation(selector);
if(selector.valid()){
var formData = {
TabName : $("#cTabName").val(),
TabOrder : $("#cTabOrder").val(),
TabDesc : $("#cTabDesc").val()
};
$.ajax({
type:"post",
url:"{{base_url()}}admin/configurations/addNewTab/",
dataType:"json",
data: formData,
success: function(output){
if (output == true){
oTable.fnReloadAjax();
}
}
});

//Do Stuff After pressing the Create Button.
// Close the Modal
$('#addNewTabModal_ManageTabs').modal('hide');
// Reset All the TextBoxes and CheckBoxes
$("#createTabModelForm")[0].reset();
// Reset/Empty All the Select2 Dropdowns
//jQuery('.select2-offscreen').select2('val', '');
}
else{
//The Else Portion if you want Something else to Happen if not validated Form
}

});

谁能知道刷新数据表的最佳方法..

最佳答案

天哪,我忘了添加 fnReloadAjax.js 文件。我在第一个 View 中添加了但忘记在这个 View 中添加..

所以任何人如果遇到这样的问题,只需查看是否附加了 js 文件。

粗心浪费了我的时间,但最终问题得到了解决。

但仍然存在全局变量的问题,我的意思是我使用全局变量来刷新网格。

如果有人有更好的选择来使用此 fnreloadajax 函数。请分享。

关于javascript - TypeError : oTable. fnReloadAjax 不是函数 - DataTables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com