我有一张桌子,上面有一个搜索栏。搜索栏的内容将过滤表查询。我希望每次用户输入字母时都重新加载表中的数据。
如果将onValueEdit事件设置为Reload the Datasource,它将恰好重新加载数据,但是如果我将onInputChange事件设置为进行重新加载,则它将重新加载表而不过滤查询,从而显示所有记录。不管我键入什么内容,它都不会过滤(尽管它的确似乎会重新加载数据源),除非我按Enter键,并在过滤时触发onValueEdit事件。有什么想法为什么我不能使用onInputChange事件过滤查询?
提前谢谢!
答案 0 :(得分:0)
onInputChange事件似乎不支持特定窗口小部件的值绑定。这是错误还是预期的行为尚不清楚。有两种方法可以避免这种行为,它们如下:
将onInputChange事件中的代码更改为:
选项1:
// Remove all occurences of 'source' from 'message'.
void removeAll(char *message, char *source)
{
int len = strlen(source) ;
for (char *x = message ; x=strstr(x, source) ; ) {
// Copy everything after 'source', including terminating nul.
memmove(x, x+len, strlen(x+len)+1) ;
} ;
}
选项2:
widget.value = widget.value;
widget.datasource.load();