dojo小例子(21)grid新增记录放在第一行

前端之家收集整理的这篇文章主要介绍了dojo小例子(21)grid新增记录放在第一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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第一行。其实这种方式也不是很完美,算是个笨方法,等遇到更好的方法再一起探讨吧。

猜你在找的Dojo相关文章