2012-11-10 41 views
1

我有EnhancedGrid,它根据我对数据库的查询从AJAX调用获取响应后加载数据。
当我提出第一个要求时,我可以正确地看到要在网格中填充的数据。但是,我改变我的查询它仍然加载以前的数据。我的响应从JSON数据库返回正确的数据。重新加载数据不会发生第二个请求

我尝试了所有可能的方式并使用萤火虫进行调试,但无法获得输出。我试图寻找类似的帖子,但仍然没有为我工作。任何帮助将不胜感激。
我在下面粘贴我的代码。

_initialiseGrid:function(){ 

var layout = [ 
       {'name': 'Project Name', 'field': 'projectName', 'width': '200px'}, 
       {'name': 'Date Created', 'field': 'createdDate', 'width':  '100px',formatter:this.formatDate}, 
       {'name': 'Comments', 'field': 'senderComments', 'width': '250px',editable:true}      
      ]; 

dataGrid = new dojox.grid.EnhancedGrid({ 
      id: 'JoinProjectGrid', 
      structure: layout, 
      rowSelector: '20px', 
      plugins: {indirectSelection: {headerSelector:true}}}, 
      document.createElement('div')); 

} 

_loadData:function(response){ 

    var projectList=response.retrievedList; 
    var rowData = { 
        identifier: "projectId", 
        items: projectList 
        }; 
    dataStore = new dojo.data.ItemFileWriteStore({data: rowData}); 
    dataGrid.set("store",dataStore); 
    dojo.byId("gridDivForJoin").appendChild(dataGrid.domNode); 
    dataGrid.startup(); 

    }  

我尝试使用:

dataGrid.setStore(dataStore) 

未对第二请求工作,所以, 我用dataGrid.set(“存储”,数据存储区),这是不加载新的数据,但显示以前one.I也尝试:

clearOnClose:true, urlPreventCache:true 

刷新网格和下面的代码还用于清除在第二请求的存储。

var newStore = new dojo.data.ItemFileReadStore({data: { identifier: "", items: []}}); 
    dataGrid.setStore(newStore); 

回答

0

我得到它添加

dataGrid.render() 
后工作
相关问题