grid.startup()不适用于Dojo数据网格中的不同数据
下面我粘贴了一个函数,根据函数调用shownames('a')在datagrid中显示数据。 DataGrid不会刷新像shownames('b')等等不同的字符。 或者,如何在不完全破坏网格的情况下更改数据网格中的数据?
function shownames(chr) { require([ "dojox/grid/EnhancedGrid", "dojo/store/Memory", "dojo/data/ObjectStore", "dojo/_base/xhr", "dojo/domReady!" ], function(DataGrid, Memory, ObjectStore, xhr){ var grid, dataStore; xhr.get({ url: "http://localhost/xampp/namedb.php?name_idx="+chr, handleAs: "json" }).then(function(data){ dataStore = new ObjectStore({ objectStore:new Memory({ data: data.items }) }); if(dijit.byId("namegrid")) { grid.destroy(); } else { grid = new dojox.grid.EnhancedGrid({ id: "namegrid", store: dataStore, query: { name_id: "*" }, queryOptions: {}, structure: [ { name: "Name", field: "name", width: "25%" }, { name: "Actual Meaning", field: "meaning", width: "50%" }, { name: "name_id", field : "name_id", hidden: true } ] }, "alphanames"); grid.startup(); } /* dojo.connect(grid, "onRowClick", grid, function(evt){ var idx = evt.rowIndex, item = this.getItem(idx); // get the ID attr of the selected row var value = this.store.getValue(item, "country_name"); }); */ }); }); }
谢谢,拉贾
你不应该按照你发布的方式刷新网格!
首先,您需要在启动时初始化网格。 所以网格显示了一些数据。 不要每次都创建一个网格! 之后,你的功能必须通过使用它的方法与网格进行通信!
我经常使用这个批量来刷新网格:
var grid= // CREATE GRID IN HERE
function yourFunction(id) {
var prepareQuery={};
prepareQuery["name_id"]=id; // Create a query based on id
grid._pending_requests={}; // Stop everything thats loading
grid._setQuery(prepareQuery); // Pass query to the grid
grid._refresh(true); // Refresh grid
}
它也可能与你的代码一起工作,但你可能需要做一些改动。
链接地址: http://www.djcxy.com/p/60457.html上一篇: grid.startup() not working for different data in the Dojo data grid