zoukankan      html  css  js  c++  java
  • extjs store中数据转换成json

    主要有以下两种方法: 

    1.

    var jsonData = Ext.encode(Ext.pluck(store.data.items, 'data')); 
    

    2.

    var datar = new Array();  
    var jsonDataEncode = "";  
    var records = store.getRange();  
    for (var i = 0; i < records.length; i++) {  
        datar.push(records[i].data);  
    }  
    jsonDataEncode = Ext.util.JSON.encode(datar);  

    项目中需要将添加或者修改过的的积分兑换奖品记录传给后台,例如。

    'fenexchyuliu button#SaveBtn' : {
      click : function(btn) {
        var grid = btn.up('gridpanel');
        var mr = grid.getStore().getModifiedRecords().slice(0);// 复制所有更新过的记录
        var recordCount = grid.getStore().getCount();// 获取数据集中记录的数量
        alert(mr.length);
        if (mr.length == 0) { // 确认修改记录数量
          alert("没有修改数据!");
          return;
        };
        var datar = new Array();
        for (var i = 0; i < mr.length; i++) {
        datar.push(mr[i].data);
        }
        Share.AjaxRequest({
        url : 'fen/rsvnfen',
          params : {
            listdata : Ext.encode(datar),
            loadname : btn.up("window").loadname
          },
          callback : function() {
          btn.up("window").close();
          }
        });
      }
    }

     
    array, propertyName ) : Array

    Plucks the value of a property from each item in the Array. Example:

    Ext.Array.pluck(Ext.query("p"), "className"); // [el1.className, el2.className, ..., elN.className]

    Available since: 4.0.0

    Parameters

    • array : Array/NodeList

      The Array of items to pluck the value from.

    • propertyName : String

      The property name to pluck from each element.

    Returns

    Array

    The value from each item in the Array.

        上面的示例中用到了数组对象的Slice(start,[end])方法,该方法返回一个新数组,包含了原函数从start到end所指定的元素,但是不包括end元素,比如a.slice(0,3)。如果start为负,则将它作为length+start处理(此处length为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4))。如果end为负,就将它作为length+end处理(次数length为数组的长度,比如a.slice(0,-1)。如果省略end,那么slice方法将一直复制到原数组结尾,比如a.slice(1))。如果省略end,那么slice方法将一直复制到原数组结尾,比如a.slice(1)。如果end出现在start之前,不复制任何元素到新数组中,比如a.slice(4,3)。示例中store.getModifiedRecords().slice(0)的作用就是复制store.getModifiedRecords(),保证store.getModifiedRecords()中的原始数据不受影响。

  • 相关阅读:
    jQuery表单验证以及将表单序列化为json对象小练习
    判断客户端浏览器是否安装了Flash插件
    css文本超出2行就隐藏并显示省略号
    jquery and js 判断一个元素是否存在
    jquery表单实时验证
    trigger()和triggerHandler()
    IE浏览器下面要实现滤镜(transparent),必须要加filter
    使用javascript判断浏览器类型
    web引入
    前端大纲********
  • 原文地址:https://www.cnblogs.com/linruiyi2015/p/4974602.html
Copyright © 2011-2022 走看看