Tabulator自定义排序参数名:如何修改默认sort[0][field]与sort[0][dir]?
Tabulator 5.4 修改排序请求参数名的正确方法
你之前用dataSendParams没生效,是因为这个配置只能映射顶级请求参数(比如page、size这种直接的键),而排序参数是嵌套的数组结构,没法直接通过它映射内部的field和dir。
给你两种可行的解决方法:
方法一:用modifyRequest回调修改参数
这个方法是在Tabulator发送请求前,直接修改请求参数对象,适合只调整参数名的场景:
var table = new Tabulator("#example-table", { ajaxURL: "你的接口地址", ajaxConfig: "GET", pagination: "remote", paginationSize: 10, // 其他表格配置... modifyRequest: function(url, params, config) { // 替换分页参数(如果需要) params.pageNo = params.page; params.limitTo = params.size; delete params.page; delete params.size; // 替换排序参数 if (params.sort && params.sort.length > 0) { params.orderBy = params.sort[0].field; params.dir = params.sort[0].dir; delete params.sort; } return {url: url, params: params, config: config}; }, });
方法二:自定义ajaxRequestFunc完全控制请求
如果需要更灵活的请求逻辑,可以自己写请求函数,完全掌控参数的构建:
var table = new Tabulator("#example-table", { ajaxURL: "你的接口地址", pagination: "remote", paginationSize: 10, // 其他表格配置... ajaxRequestFunc: function(url, config, params) { // 构建自定义参数对象 const customParams = { pageNo: params.page, limitTo: params.size, }; // 处理排序参数 if (params.sort && params.sort.length > 0) { customParams.orderBy = params.sort[0].field; customParams.dir = params.sort[0].dir; } // 用fetch发送GET请求(也可以换成axios) return fetch(`${url}?${new URLSearchParams(customParams)}`, { method: "GET", headers: { "Content-Type": "application/json", }, }).then(res => res.json()); }, });
内容的提问来源于stack exchange,提问作者mrrsb
相关产品推荐
相关产品推荐

