我有一個tablesorter項目,自從幾個月以來一直在客戶端分頁工作良好。現在我必須將其轉到服務器端分頁,但是我無法使用它與客戶端版本使用的所有功能一起使用。無法在服務器端分頁tablesorter上使用contenteditable小部件
至於主題,我的問題是使contenteditable功能工作。
我所做實現這一目標,是寫綁定到ajaxProcessing處理器上tablesorterPager配置的自定義函數:
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屬性根本不存在。當然,這個小部件是初始化和配置的(與之前的版本相同,客戶端分頁)。
另一個提示,指出一些小部件故障(也許):我設法手動添加(在上面張貼的同一個函數內)標記上的contenteditable屬性,看它是否會給我一些信息。在這種情況下,我可以按照預期編輯內容,但是我沒有得到editComplete事件的處理程序,並且數據接受設置不適用。我仍然可以手動添加處理程序和自定義代碼以使其按預期工作,但這會很糟糕,我不希望使用hack來獲得已實施的功能。
任何暗示,將不勝感激,感謝大家誰會回答。