Javascript 使用JsonRest存储向OnDemandGrid样式的dGrid添加实时查询?
当dGrid由JsonRest存储支持时,如何实现dijit/TextBox来过滤OnDemandGrid样式dGrid中的数据?我想在框中搜索,并在键入时更新网格 我在dGrid文档中找不到任何示例,尽管这看起来正是问题所在--它使用MemoryStore并将其替换为JsonRest存储不起作用 我是否需要查询存储然后刷新网格?我需要可观察的吗?那么dojo.store.util.SimpleQueryEngine呢?这就是答案的一部分Javascript 使用JsonRest存储向OnDemandGrid样式的dGrid添加实时查询?,javascript,dojo,dgrid,Javascript,Dojo,Dgrid,当dGrid由JsonRest存储支持时,如何实现dijit/TextBox来过滤OnDemandGrid样式dGrid中的数据?我想在框中搜索,并在键入时更新网格 我在dGrid文档中找不到任何示例,尽管这看起来正是问题所在--它使用MemoryStore并将其替换为JsonRest存储不起作用 我是否需要查询存储然后刷新网格?我需要可观察的吗?那么dojo.store.util.SimpleQueryEngine呢?这就是答案的一部分 大概服务器上也必须进行一些更改才能响应查询。结果证明这相
大概服务器上也必须进行一些更改才能响应查询。结果证明这相当简单。您只需在网格上设置查询属性并调用refresh() 然后,我必须对服务器端代码进行一个简单的更改,以处理?search=任意查询字符串 这是我的密码:
// assuming we have a declarative dijit/TextBox and a reference to our grid in myGrid
// wait for DOM before wiring up our textbox (when dijit parsed)
ready( function()
{
var timeoutId = null,
searchTextBox = registry.byId( 'searchTextBox' );
searchTextBox.watch( 'value', function( name, oldValue, newValue )
{
if( newValue.length == 1 )
{
return;
}
if( timeoutId )
{
clearTimeout( timeoutId );
timeoutId = null;
};
timeoutId = setTimeout( function()
{
myGrid.query = { search: newValue };
myGrid.refresh();
}, 300 );
} );
} );