WEBIX:如何修改发送到服务器的数据表过滤查询

WEBIX: How to modify query sent to server on datatable filtering

我正在使用 Webix UI 框架。我正在尝试找到最好的方法来修改在数据表组件上来自服务器的 filtering/requesting 数据之前发送到服务器的查询。这同样适用于数据视图和其他组件。

我发现修改 'save' 上传递的参数很简单:

onBeforeUpdate:function(id, o) {
  o.data.newVariable = newValue;
}

我可以在 post 请求中添加任意数量的字段。

虽然在检索数据时,并不清楚访问要在查询中使用的数据。一种方法是使用 registerFilter,但我相信这需要在我希望避免的虚拟列上创建。

我认为我可以轻松做到这一点:

onBeforeFilter: function() {
  this.data.url = "script.php?field=value";
}

并且 webix 会注意保持我的查询字符串的完整性,并将其余的过滤器参数附加到它。

最合适的方法是什么?有没有其他方法可以在过滤前访问和修改查询中的数据?

请分享您的想法。

您可以使用数据代理

http://docs.webix.com/desktop__server_proxy.html#creatingcustomproxyobjects

这是一段代码,将作为组件和服务器端代码之间的代理。每次组件需要向服务器端发送请求时,都会调用代理方法。因此,您将完全控制将哪些数据发送到服务器端。

webix.ui({
    view:"list",
    url:{
        $proxy:true,
        load:function(view, callback, state){
                //any data loading pattern here
                webix.ajax("some.php?a=1", callback, view);
        }
    }
});