gpt4 book ai didi

jquery - 动态更改剑道数据源的过滤器值?

转载 作者:行者123 更新时间:2023-12-03 22:20:38 27 4
gpt4 key购买 nike

我希望能够通过函数动态更新过滤器值:

filter: [{
"field": "id_person",
"operator": "eq",
"value": GetIdPerson()
}]

函数:

function GetIdPerson() {
try{
if (viewModel.get("SelectedMember").id_person > 0) {
return viewModel.get("SelectedMember").id_person;
}
} catch(ex) { }
return 0;
}

但是当我调用 datasource.read() 时,该函数没有被调用。

有没有更好的方法来实现这一点?

或者如果这是最好的方法,我做错了什么?

谢谢!

最佳答案

数据源中有一个用于设置(更新)过滤器的内置函数,请检查 this 。所以实际上我不知道你为什么需要这个功能。这样做会更容易:

try{
if (viewModel.get("SelectedMember").id_person > 0) {
datasource.filter({
"field": "id_person",
"operator": "eq",
"value": viewModel.get("SelectedMember").id_person
});
}
} catch(ex) { }

我的意思是,为原始数据源定义/应用一个新的过滤器,其中的条件就是您想要的。

但是当然,没有什么可以阻止您使用函数来获取过滤器的实际值,您可以这样做:

function GetIdPerson() {
try{
if (viewModel.get("SelectedMember").id_person > 0) {
return viewModel.get("SelectedMember").id_person;
}
} catch(ex) { }
return 0;
}
var datasource = new kendo.data.DataSource({
...
schema : {
model : {
fields: {
...
}
}
},
filter: {
"field": "id_person",
"operator": "eq",
"value": GetIdPerson()
}
});

和/或

datasource.filter({
"field": "id_person",
"operator": "eq",
"value": GetIdPerson()
});

这里是一个例子:http://jsfiddle.net/OnaBai/9gnsj/

关于jquery - 动态更改剑道数据源的过滤器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com