转自:http://blog.csdn.net/earthhour/article/details/38686029

ObjectStore onFetch方法获取记录总数

require(['dojo/when']);
var json = new JsonRest({target: url}); store = new ObjectStore({objectStore: json}); store.onFetch = function(results){
// 方法一:
results.then(function(rs){
console.log('rs len->',rs.length);
});
// 方法二:
when(results, function(results){
console.log('when->',results.length);
console.dir(results);
});
};

  

dojo小例子(14)对提供给grid显示的数据进行预处理

有时我们从后台获取的数据不一定能满足页面显示的需求,比如后台数据中某个字段值是“1/0”,但是显示时我们希望显示为“是/否”。这就需要对数据进行转换,也就是预处理。

可以有两种方法,假设使用场景是JsonRest+ObjectStore组合为grid提供懒加载数据。

方法一、对store中的数据进行预处理。

  1. var json = new JsonRest({
  2. target: url
  3. });
  4. var store = new ObjectStore({objectStore: json});
  5. store.onFetch = function(results){
  6. results.forEach(function(item){
  7. // 在这里预处理数据
  8. if(item.admin == '1'){
  9. item.admin = '是';
  10. }else{
  11. item.admin = '否';
  12. }
  13. });
  14. };

方法二、在grid的structure中预处理。

  1. var layout = [
  2. [{
  3. 'name': 'Column 1',
  4. 'field': 'id',
  5. 'width': '100px'
  6. }, {
  7. 'name': 'Column 2',
  8. 'field': 'admin',
  9. 'width': '100px',
  10. get: function(colIndex, item) {
  11. // processing data
  12. if (item.admin == '1') {
  13. return '是';
  14. } else {
  15. return '否';
  16. }
  17. }
  18. }, {
  19. 'name': 'Column 3',
  20. 'field': 'desc',
  21. 'width': '200px'
  22. }]
  23. ];

另外,遇到带内部对象的json数据,例如:

{"name":"陈","age":"24","phone":{"company":"123","home":"456","private":"789"}}

我们想把内部对象的属性company显示到grid,如果这样写'field': 'phone.company'肯定行不通,所以也适合用上面提到的两种方法之一进行转换。

假如采用第二种方法:

  1. {
  2. 'name': 'Column 2',
  3. 'field': 'phone.company',
  4. 'width': '100px',
  5. get: function(colIndex, item) {
  6. // processing data
  7. return item.phone.company;
  8. }
  9. }

2014-5-13更新:

采用第二种方法时,对grid刷新会不起作用,就是由于get方法导致。代码如下:

  1. Grid.resize();
  2. Grid._refresh();

目前原因不清楚。所以如果需要用到grid刷新,还是采用第一种方式

ObjectStore onFetch方法获取记录总数的更多相关文章

  1. thinkphp5 数据库查询之paginate: 同时获取记录总数和分页数据

    thinkphp5中要想同时获得查询记录的总数量以及分页的数据, 可以用paginate(), 真的非常方便! 表结构: CREATE TABLE `t_users` ( `id` int(11) u ...

  2. MySQL高效获取记录总数

    通常mysql获取查询记录总数我们使用如下语句: SELECT COUNT(*) FROM users WHERE k='avs';  或:SELECT id FROM goods WHERE k=' ...

  3. 【Mysql】MySQL高效获取记录总数SQL_CALC_FOUND_ROWS

    用法说明 分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL ...

  4. PHP MYSQL 获取记录总数

    $qid = mysql_query(“SELECT count(aid) as total FROM table group by aid “);//你的查询 $res = mysql_fetch_ ...

  5. 如何获取Repeater行号(索引)、记录总数?

    Repeater控件想必搞ASP.NET开发的人,基本上都到了用的炉火纯青的地步了.今个又吃了懒的亏,翻了好几个项目的代码都没找到如何获取Repeater记录总数的代码来,又Google了半天难得从老 ...

  6. MS SQLSERVER中如何快速获取表的记录总数

    在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等.我们通常的做法是:select count(*) as c from tableA .然而对 ...

  7. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  8. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

  9. [Android Pro] 关于inputStream.available()方法获取文件的总大小

    reference to :http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调 ...

随机推荐

  1. Linux操作系统常用命令

    http://www.cnblogs.com/huangzelin/p/5617611.html http://www.cnblogs.com/liumt/p/6117168.html

  2. chrome下的js调试

    console输出对象信息:console.log(object[,object,.....])

  3. hdu 3371 Connect the Cities

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3371 Connect the Cities Description In 2100, since th ...

  4. iOS学习之UINavigationController

    一.UINavigationController      1.UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,用它来管理多个视图控制器.可以称为是管理控 ...

  5. 使用Git和远程代码库

    git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...

  6. ext4.1动态生成多个checkboxgroup(或者radiogroup),并且有toolbar操作、

    转载自:http://blog.csdn.net/zhengyuechuan/article/details/9327291 前台controller代码: Ext.define('zyc.contr ...

  7. java数据结构和算法------合并排序

      package iYou.neugle.sort; public class Merge_sort { public static void MergeSort(double[] array, i ...

  8. C++实现的哈希搜索

    C++实现的哈希搜索 程序内容 Complete a text searching engine using hash table. 完成一个文本搜索引擎,使用哈希表 程序设计 程序流程图 程序代码 ...

  9. mysql查询重复

    select * from tablename where id in (    select id from tablename    group by id    having count(id) ...

  10. 如何在Swing窗体增删组件后及时刷新显示新界面

    转自:http://blog.csdn.net/leeshuqing/article/details/8636211 关键的四行代码,连续调用窗体的四个方法即可: repaint();validate ...