grid新增记录有很多种方式,store.newItem()通常会把新增记录放在最后面;如果用xhr方式增加记录,再把数据传回grid,或者刷新grid,则新增记录的位置取决于后台数据;或者xhr方式提交,但不再访问后台获取数据,还能把新增记录放到第一行,就可以采用下面这种方式:
首先,可以通过多种方式取得数据,但格式须是数组,假设数组名称是data
var mem = new Memory({data: data}); var store = new ObjectStore({ objectStore: mem });然后把store给grid
其次,直接操作grid的数据源
var myNewItem = { id: (++i),col1: "Mediate",col2: true,col3: 'Newly added values',col4: 8888 }; // 新记录放到数组开头 store.objectStore.data.unshift( myNewItem ); // grid刷新 grid.render();
因为grid的数据源是数组,所以可以方便的进行数组操作,把新增记录放到数组元素的第一位,而数据源的改变会直接反应到grid渲染上,所以新增记录也就理所应当的出现在grid第一行。其实这种方式也不是很完美,算是个笨方法,等遇到更好的方法再一起探讨吧。