2014-01-08 234 views
0

嗨,这是我的代码我试图刷新网格面板单击工具栏中的刷新按钮,但它不会再工作或什么都没有发生,请你帮我什么是正确的语法?如何刷新/重新加载网格

var store = new Ext.data.JsonStore({ 
    url: 'data-cloud.php', 
    fields: [{ 
     name: 'userid' 
    }, { 
     name: 'record_name' 
    }, { 
     name: 'search_term', 
     type: 'string' 
    }] 
}); 

var grid_array = new Array(); 
store.load({ 
    params: { 
     start: 0, 
     limit: 5 
    } 
}); 

store.on('load', function(store, records) { 
    for (var j = 0; j < records.length; j++) { 
     grid_array[j] = records[j].get('record_name'); 
    } 
}); 

// create the Grid 
var datagrid = new Ext.grid.GridPanel({ 
    store: store, 
    columns: [{ 
     id: 'id', 
     header: 'Cloud Name', 
     width: 155, 
     renderer: record_name, 
     sortable: true, 
     dataIndex: 'record_name' 
    }, { 
     header: 'Search Term', 
     width: 150, 
     sortable: true, 
     dataIndex: 'search_term' 
    }], 
    stripeRows: true, 
    height: 250, 
    width: 500, 
    id: 'cloud_panel', 
    title: 'DB Grid', 
    id: 'detailPanel', 
    tbar: [{ 
      text: 'Refresh', 
      iconCls: 'new-topic', 
      handler: function() { 
       Ext.getCmp('detailPanel').getView().refresh(); 
      } 
     } 

    ], 
    bbar: new Ext.PagingToolbar({ 
     pageSize: 5, 
     store: store, 
     displayInfo: true, 
     displayMsg: 'Displaying topics {0} - {1} of {2}', 
     emptyMsg: "No topics to display" 
    }) 
}); 

回答

0
var grid = Ext.getCmp('cloud_panel'); 
... 
tbar: [ 
    handler: function() { 
     grid.load(); 
    } 
] 
+0

我用你的代码,它会在长期载入控制台显示错误行GET HTTP: //192.168.1.2/ext/undefined :( – VSN

+0

我也用过这个Ext.getCmp('cloud_panel').load('data-cloud.php');之后它直接tly在网格中打印数组而不是actaul值。 :( – VSN

+0

也谢谢你也!我的问题解决了..通过Ext.getCmp('cloud_panel')。getStore()。reload(); – VSN

0

如果刷新网格视图,数据将需要重新加载,它只是重新渲染演示。

要刷新的实际数据,使用reload功能对电网的商店:

Ext.getCmp('detailPanel').getStore().reload(); 

顺便说一句,你在你的网格的配置,“cloud_panel”和“detailPanel”两次设置id属性,因此你可能会想要消除其中的一个。

+0

我已经删除了两次id然后它就起作用了..谢谢其工作很好...... :) – VSN

0

尝试

var grid = Ext.getCmp('cloud_panel'); 
grid.getStore().load(); 

,你也可以通过PARAMS存储

grid.getStore().getProxy().extraParams = {name:'name1', lname: 'lname'} 

grid.getStore().load(function(){ 
    alert('store was loaded'); 
}); 
+0

谢谢你的朋友。 。! – VSN