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);
}
}
});
我正在使用 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);
}
}
});