我有一直良好,因为一些个月的客户端分页一个项目的tablesorter。 现在我必须把它转化为服务器端分页,但我不能把它与所有我使用与客户端版本的功能工作。
由于在主题,我的问题是使CONTENTEDITABLE功能正常工作。
我做了什么来实现这一点,是写一个自定义函数结合于tablesorterPager配置ajaxProcessing处理程序:
ajaxProcessing: function (data) {
if (data && data.hasOwnProperty('rows')) {
var str = "", d = data.rows,
// total number of rows (required)
total = data.total_rows,
// len should match pager set size (c.size)
len = d.length;
for (var i = 0; i < len; i++) {
str += '<tr>';
for (var column = 0; column < orderedFieldMapping.length; column++) {
if (orderedFieldMapping[column].toUpperCase() != 'ACTIVATIONDATE' || bReadOnly)
str += '<td class="' + orderedFieldMapping[column].toUpperCase() + '"' + ($('#' + orderedFieldMapping[column].toUpperCase()).prop('checked') ? '' : 'style="display:none;"') + '><div>' + (eval('d[i].' + orderedFieldMapping[column]) != null ? eval('d[i].' + orderedFieldMapping[column]) : '') + '</div></td>';
else
str += '<td class="' + orderedFieldMapping[column].toUpperCase() + '"' + ($('#' + orderedFieldMapping[column].toUpperCase()).prop('checked') ? '' : 'style="display:none;"') + '><div ' + (eval('d[i].' + orderedFieldMapping[column]) != null ? '' : 'class="emptyPlaceholder"') + 'onmouseup="javascript:SelectActivationDateText(this);" onblur="javascript:RestoreCellStyle(this);">' + (eval('d[i].' + orderedFieldMapping[column]) != null ? eval('d[i].' + orderedFieldMapping[column]) : emptyTextString) + '</div></td>';
}
str += '</tr>';
}
// in version 2.10, you can optionally return $(rows) a set of table rows within a jQuery object
return [total, $(str)];
}
},
请注意,我在一个jQuery对象中返回一组表中的行,选择允许的文档例如评论(在此代码示例中也可见)的规定。 为什么我做这种事的原因是,我需要控制表标记添加样式,处理程序和类。 这就是我在内部进行循环做的,它不是很重要的知道到底什么我做什么。 最重要的是,我得到预期的结果,并标记为我的表,和服务器端分页工作没有问题,但CONTENTEDITABLE小部件不工作。
我得到JS控制台,所有的工作只是罚款上没有警告,但我不能编辑我标记为可编辑的列。 我可以看到,也看标记,因为contenteditable属性,是不存在的。 当然,窗口小部件inintialized和配置(以同样的方式,这是在以前的版本,客户端分页)。
一些小部件的故障,它指向另一个提示(也许):我设法手动添加的标记中包含contenteditable属性(我在上面贴了同样的函数内)只是为了看看它会给我一些信息。 在这种情况下,期望我可以编辑的内容,但我没有得到任何处理程序editComplete事件和数据接收设置不应用。 我仍然可以手动添加处理程序和自定义代码得到它像预期的那样,但它是坏的,我不希望使用黑客得到一个已经实现的功能正常工作。
任何暗示将不胜感激,感谢大家谁将会回答。