当前位置 : 主页 > 网页制作 > Dojo >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
grid新增记录有很多种方式,store.newItem()通常会把新增记录放在最后面;如果用xhr方式增加记录,再把数据传回grid,或者刷新grid,则新增记录的位置取决于后台数据;或者xhr方式提交,

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

网友评论