如何解决有没有办法覆盖数据表中的动作?
我正在为无法更改的已建立API端点编写Datatables / Bootstrap前端。 Datatables开箱即用,提供了排序,搜索和分页等功能,但是这些功能似乎只有在API端点识别出Datatables默认在其ajax请求中发送的参数时才起作用。
Datatables确实提供了一种在初始化期间用端点期望的参数覆盖默认参数的机制。但是,当使用诸如sort之类的Datatables功能时,如何使Datatables保持使用初始化的那些自定义参数呢?
初始化代码(简化和相关部分):
$('#table').DataTable(
ajax : {
data : function(dt_params){
//custom_params. dt_params is the default Datatables params
return {
_search : false,nd : new Date().getTime(),rows : 100,page : dt_params.draw,sidx : 'family_name',sord : 'asc',returnColumns : 'name,age,occupation'
}
},//this allows the response to be modified in a way that Datatables understands
dataFilter : function(response){
var json = JSON.parse(response);
json.recordsTotal = json.records;
json.recordsFiltered = json.records;
return JSON.stringify(json);
},dataType : 'json',contentType : "application/json; charset=utf-8",type : 'GET',url : window.yii_app_baseUrl + 'api/users?',dataSrc : 'rows'
},);
数据表会将custom_params
发布到api,获取数据并在初始加载时提供该表。但是诸如“搜索”和“排序”之类的功能将无法使用,因为在初始化表之后,数据表不会继续使用自定义参数,而是会将其自己的默认参数发送到端点。
是否有办法阻止Datatables在“搜索”或“排序”或“分页”单击时执行自动ajax请求,并编写自定义代码来处理这些事件?初始化后,似乎唯一允许与ajax相关的修改是Datatables,它是URL。例如,在处理程序中类似table.ajax.url('new_api_url');
的内容。我可以手动将自定义参数附加到新的url,但是问题是我无法“劫持”自动ajax请求数据表可以...
或者,是否有一种方法可以在单击分页或排序功能时强制数据表继续使用自定义参数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。