【发布时间】:2020-01-22 01:06:23
【问题描述】:
我有一个搜索字段分隔的表格 1- 表头包含“搜索字段 - 表头” 2- 表体 => 来自 ajax post 方法 3- 分页 => 数据执行后来自 ajax post 方法“我使用 setTimeout 来延迟此功能”
数据通过 ajax post 自动显示在表体中,如果用户使用搜索字段,搜索词过滤的数据和分页也会根据数据显示
我有两个案例 1-在主页中,表格加载了页面并且一切正常,我使用了以下功能: 以下功能负责数据
jsQueryDataLive(defaultPageNo);
function jsQueryDataLive(defaultPageNo){
var objData = {
action : dataTableName +'/QueryData',
ajaxClass : actionSplit0,
ajaxPage : defaultPageNo,
};
$('#form-query-main').find(":input").each(function(){
objData[this.name] = $(this).val();
});
// console.log(objData);
// NOTE: the below line is Responsible for determining the location we need to view data on
var locationID = '#main-table-tbody';
ajaxPost(objData, locationID);
}
下面的分页函数
jsPaginationLive(defaultPageNo);
function jsPaginationLive(defaultPageNo){
setTimeout(function () {
var objData = {
action : dataTableName +'/Pagination',
ajaxClass : actionSplit0,
ajaxPage : defaultPageNo,
};
// document.getElementById("jsData").innerHTML =JSON.stringify(objData);
// NOTE: the below line is Responsible for determining the location we need to view data on
var locationID = '#pagination';
ajaxPost(objData, locationID);
}, 100);
}
我使用以下函数进行过滤
$('.searchField').keyup(function() {
jsPageNo(defaultPageNo);
} );
function jsPageNo(defaultPageNo) {
jsQueryDataLive(defaultPageNo);
jsPaginationLive(defaultPageNo);
}
2- 第二种情况是我想在模态中显示上面的包
正如您在页面中看到的,表格和数据正确显示 我用这个函数来定义表并加载主包:
var dataTableName;
jsDataTableName();
function jsDataTableName(tableName) {
if (tableName === undefined) {
dataTableName = actionSplit0;
// console.log(dataTableName);
}
else {
dataTableName = tableName;
console.log(dataTableName);
// NOTE: load External Class Query page
jsLoadExternalClass();
}
}
function jsLoadExternalClass(){
var objData = {
action : dataTableName +'/Query',
ajaxClass : actionSplit0,
ajaxPage : defaultPageNo,
};
// document.getElementById("jsData").innerHTML =JSON.stringify(objData);
// jsPaginationLive(defaultPageNo);
// NOTE: the below line is Responsible for determining the location we need to view data on
var locationID = '#externalClass1';
ajaxPost(objData, locationID);
jsPageNo(defaultPageNo);
}
当我立即键入时过滤不工作的问题,但在我关闭模式并重新打开它后它工作 enter image description here
如果有更好的解决方案在 jsQueryDataLive 完成而不是 setTimeout 后启动函数 jsPaginationLive 请告诉我
【问题讨论】:
标签: javascript jquery ajax