Javascript 在tablesorter上实现基本服务器分页

Javascript 在tablesorter上实现基本服务器分页,javascript,jquery,ajax,tablesorter,Javascript,Jquery,Ajax,Tablesorter,我在使用tablesorter实现服务器端分页时遇到问题 我从服务器读取json数据,但是有太多的记录,无法一次获取整个数据集,因此我需要通过服务器端分页来减少加载时间 我的第一个实现(带有客户端分页)从服务器读取json数据,并构建包含所有数据的html表,然后分页器初始化完成其余工作。最基本的一点是,json数据由一个自定义函数读取,该函数使用我需要的所有选项和数据递归地构建表:我有20多个文件要显示,我需要根据从上下文获得的一些参数添加css类、处理程序和装饰,所以我不能只写一个静态表,然

我在使用tablesorter实现服务器端分页时遇到问题

我从服务器读取json数据,但是有太多的记录,无法一次获取整个数据集,因此我需要通过服务器端分页来减少加载时间

我的第一个实现(带有客户端分页)从服务器读取json数据,并构建包含所有数据的html表,然后分页器初始化完成其余工作。最基本的一点是,json数据由一个自定义函数读取,该函数使用我需要的所有选项和数据递归地构建表:我有20多个文件要显示,我需要根据从上下文获得的一些参数添加css类、处理程序和装饰,所以我不能只写一个静态表,然后让tablesorter来处理它

我想我的是一个常见的场景,但我想知道如何在服务器端分页上做同样的事情。当然,我必须摆脱当前管理整个数据集并写入实际表的自定义函数。在服务器端分页模式下,如何将相同的概念(比如转换函数)应用于寻呼机插件发出的每个请求? 从文档中,我猜这个角色是ajaxProcessing绑定函数所必需的,但是我无法使它工作,我真的不知道如何实现与我以前的实现相同的结果

为了进一步说明我需要什么,我粘贴了我提到的函数,即构建表和绑定来自json的数据的函数。同样,在tablesorter初始化之前调用此函数,其任务是编写数据并设置属性、类和绑定,以实现我的应用程序应该执行的任何操作:

// This function creates a standard table with column/rows
// Parameter Information
// objArray = Anytype of object array, like JSON results
// tableId = Id of the container of the table (not a table element itself!)
// dateColumns = String array containing names of date fields (for formatting parser) - case insensitive
// orderedFields = String array containing field names ordered as requested - case sensitive
// readOnly = boolean, defines whether a particular field has to be shown in readonly o read/write mode
function CreateTableOrderedView(objArray, tableId, dateColumns, orderedFields, readOnly) {
    // If the returned data is an object do nothing, else try to parse
    var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

    var str = '<table id="' + tableId + '" class="tablesorter tablesorter-blue">';

    // table head
    str += '<thead><tr class="tablesorter-headerRow" role="row">';
    for (var index = 0; index < orderedFields.length; index++) {
        str += ($.inArray(orderedFields[index].toUpperCase(), dateColumns) == -1 ? '<th scope="col" class="' + orderedFields[index].toUpperCase() + '">' + orderedFields[index] + '</th>' : '<th scope="col" class="' + orderedFields[index].toUpperCase() + ' sorter-ddmmyy">' + orderedFields[index] + '</th>');
    }
    str += '</tr></thead>';

    // table body
    str += '<tbody>';
    for (var i = 0; i < array.length; i++) {
        str += '<tr>';
        for (var column = 0; column < orderedFields.length; column++) {
            //If the current field is the one that can be edited (this piece of information has to be added to the function parameters list) and it's not in readonly mode, add some handlers to correctly handle contentEditable selections and empty data
            if (orderedFields[column].toUpperCase() != 'ACTIVATIONDATE' || readOnly)
                str += '<td class="' + orderedFields[column].toUpperCase() + '"><div>' + (eval('array[i].' + orderedFields[column]) != null ? eval('array[i].' + orderedFields[column]) : '') + '</div></td>';
            else
                str += '<td class="' + orderedFields[column].toUpperCase() + '"><div ' + (eval('array[i].' + orderedFields[column]) != null ? '' : 'class="emptyPlaceholder"') + 'onmouseup="javascript:SelectActivationDateText(this);" onblur="javascript:RestoreCellStyle(this);">' + (eval('array[i].' + orderedFields[column]) != null ? eval('array[i].' + orderedFields[column]) : emptyTextString) + '</div></td>';
        }
        str += '</tr>';
    }
    str += '</tbody>';
    str += '</table>';

    return str;
}
//此函数用于创建包含列/行的标准表
//参数信息
//objArray=任何类型的对象数组,如JSON结果
//tableId=表的容器Id(不是表元素本身!)
//dateColumns=包含日期字段名称的字符串数组(用于格式化解析器)-不区分大小写
//orderedFields=包含按请求排序的字段名的字符串数组-区分大小写
//readOnly=boolean,定义特定字段是否必须以只读o读/写模式显示
函数CreateTableOrderedView(objArray、tableId、dateColumns、orderedFields、只读){
//如果返回的数据是对象,则不执行任何操作,否则尝试解析
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
//桌头
str+='';
对于(var index=0;index
我希望对请求的每个页面应用这些规则,得到类似的结果,这样每次我都可以设置可见行,使它们的行为与客户端分页实现中的行为相同,但我很难理解应该如何准确地执行此操作


提前感谢您的帮助。

我自己找到了我一直在寻找的东西

基本上,为了实现我在服务器端分页场景中使用quoted函数所做的工作,必须在tablesorterPager设置中实现一个绑定到ajaxProcessing属性的处理程序。 在该函数中,您可以将数据绑定到表单元格,但也可以选择控制表标记本身并根据需要对其进行自定义

可以在上找到一个实现该函数以获得与我在上一篇文章中引用的结果非常相似的结果的示例