我正在使用datatables是我的Web应用程序。我已经启用了下拉菜单,用户可以在其中选择他们希望看到的条目数。
目前,当用户选择要显示的条目数时,我启用了处理消息。
我想要做的不是显示处理消息,而是希望我的页面上的按钮(已存在带有id)被禁用,并显示其他文本,例如" Loading" (即覆盖自定义处理行为)。然后,一旦处理完成,我希望按钮返回到它的原始状态(即启用原始文本)。
这可能,我该怎么办?这是我当前的数据表初始化代码。
$('#search-results-table').dataTable({
'bServerSide': true, // user server side processing
'sAjaxSource': searchResultsTableAjaxServletUrl, // load data from an external source
'bProcessing': true, // enable the processing indicator whilst table is loading
'deferRender': true,
'searching': false, // disable search box
'sPaginationType': 'full_numbers',
'oLanguage': {
'sEmptyTable': 'Items not found.'
},
'fnServerData': function ( sSource, aoData, fnCallback ) {
$.getJSON( sSource, aoData, function (data) {
//there was a web service error
if ('errorMessage' in data) {
$('div#errorMessage h2').html(data.errorMessage);
fnCallback({ 'aaData': [], 'iTotalDisplayRecords': 0, 'iTotalRecords': 0, 'sColumns': null, 'sEcho': 1});
}
// only if expected json array is returned go ahead and load
if (('aaData' in data)) {
fnCallback(data);
}
})
.fail(function() {
$('div#errorMessage h2').html('Search service unavailable, please contact IT support or try again later');
fnCallback({ 'aaData': [], 'iTotalDisplayRecords': 0, 'iTotalRecords': 0, 'sColumns': null, 'sEcho': 1});
});
},
'initComplete': function(settings, json) {
enableFields('#searchButton');
},
'aoColumnDefs':[{
'aTargets': [ 4 ],
'mRender': function ( data, type, full ) {
return '<a href="javascript:setItemNumber(' + data + ');">' + data + '</a>';
}
}],
'aoColumns': [
{'mDataProp':'itemDescription','bSortable':false,sDefaultContent:'','sWidth':'40%'},
{'mDataProp':'size','bSortable':false,'sClass':'center',sDefaultContent:'','sWidth':'15%'},
{'mDataProp':'colour','bSortable':false,'sClass':'center',sDefaultContent:'','sWidth':'15%'},
{'mDataProp':'supplyStyle','bSortable':false,'sClass':'center',sDefaultContent:'','sWidth':'15%'},
{'mDataProp':'itemNumber','bSortable':false,'sClass':'center',sDefaultContent:'','sWidth':'15%'}
]
});
答案 0 :(得分:2)
我将此添加到我的datatables代码中以覆盖处理函数的默认行为。我还将bProcessing设置为false。
$('#search-results-table') .on('processing.dt',function( e, settings, processing ){
if (processing){
disableSearchButton();
}else {
enableSearchButton();
}
} )