javascript - Extjs - 获取网格上的所有数据

标签 javascript extjs extjs4.2

我有一个网格,当我将数据加载到网格时,我使用pageSize: 10对其进行分页,我想从该网格获取数据存储以检查其他网格中的冗余数据,但是我只得到10条数据,因为我已经设置了pageSize 10,实际上数据已经超过10了。

如何获取已分页的网格中的所有数据?

我已经使用代理类型“pagingmemory”但不起作用 这是我的商店:

var store = Ext.create('Ext.data.Store', {
  //extend: 'Ext.data.Store',
  model: settings.namespace + 'model.FormRequestDetailModel',
  remoteSort: true,
  remoteFilter: true,
  autoLoad: false,
  pageSize: 10,
  //proxy: {
  //    type: 'pagingmemory'
  //},
  sorters: [{
    property: 'FormRequestNo',
    direction: 'ASC'
  }]

});
var filters = [];
var filter = {
  property: 'FormRequestID',
  value: data.ID
};
filters.push(filter);
store.filters.clear();
if (filters.length == 0) {
  store.load();
} else {
  store.filter(filters);
}

这是模型:

//-----------Structure for PurchaseOrder -----------------------//

Ext.define(settings.namespace + 'model.FormRequestDetailModel', {
  extend: 'Ext.data.Model',
  fields: [{
    name: 'ID',
    mapping: 'ID'
  }, {
    name: 'FormRequestID',
    mapping: 'FormRequestID'
  }, {
    name: 'MaterialStockID',
    mapping: 'MaterialStockID'
  }, {
    name: 'MaterialID',
    mapping: 'MaterialID'
  }, {
    name: 'Item',
    mapping: 'Item'
  }, {
    name: 'MaterialNo',
    mapping: 'MaterialNo'
  }, {
    name: 'MaterialDescription',
    mapping: 'MaterialDescription'
  }, {
    name: 'Quantity',
    mapping: 'Quantity'
  }, {
    name: 'UOMID',
    mapping: 'UOMID'
  }, {
    name: 'UOMDescription',
    mapping: 'UOMDescription'
  }, {
    name: 'GLAccountID',
    mapping: 'GLAccountID'
  }, {
    name: 'GLAccountNo',
    mapping: 'GLAccountNo'
  }, {
    name: 'GLAccountDescription',
    mapping: 'GLAccountDescription'
  }, {
    name: 'InternalAgreement',
    mapping: 'InternalAgreement'
  }, {
    name: 'FundReservationNo',
    mapping: 'FundReservationNo'
  }, {
    name: 'AssetNo',
    mapping: 'AssetNo'
  }, {
    name: 'DeliveryDate',
    mapping: 'DeliveryDate'
  }, {
    name: 'Background',
    mapping: 'Background'
  }, {
    name: 'Purpose',
    mapping: 'Purpose'
  }, {
    name: 'UrgencyID',
    mapping: 'UrgencyID'
  }, {
    name: 'UrgencyDescription',
    mapping: 'UrgencyDescription'
  }, {
    name: 'LineStopPotentialID',
    mapping: 'LineStopPotentialID'
  }, {
    name: 'LineStopPotentialDescription',
    mapping: 'LineStopPotentialDescription'
  }, {
    name: 'BackupListID',
    mapping: 'BackupListID'
  }, {
    name: 'BackupListDescription',
    mapping: 'BackupListDescription'
  }, {
    name: 'ReplaceID',
    mapping: 'ReplaceID'
  }, {
    name: 'ReplaceDescription',
    mapping: 'ReplaceDescription'
  }, {
    name: 'FormRequestStatusID',
    mapping: 'FormRequestStatusID'
  }, {
    name: 'IsDrop',
    mapping: 'IsDrop'
  }, {
    name: 'RejectionReasonID',
    mapping: 'RejectionReasonID'
  }, {
    name: 'RejectionReason',
    mapping: 'RejectionReason'
  }, {
    name: 'CreatedTime',
    mapping: 'CreatedTime'
  }, {
    name: 'CreatedBy',
    mapping: 'CreatedBy'
  }, {
    name: 'LastModifiedTime',
    mapping: 'LastModifiedTime'
  }, {
    name: 'LastModifiedBy',
    mapping: 'LastModifiedBy'
  }, {
    name: 'RowStatus',
    mapping: 'RowStatus'
  }, {
    name: 'RejectionReason',
    mapping: 'RejectionReason'
  }, {
    name: 'Approved',
    type: 'boolean',
    defaultValue: false
  }],
  idProperty: 'ID',
  proxy: {
    type: 'ajax',
    url: settings.apiUrl + 'FormRequest/GetDetail',
    actionMethods: {
      read: 'POST'
    },
    reader: {
      type: 'json',
      root: 'data.rows',
      totalProperty: 'totalCount'
    }
  },
  sorters: [{
    property: 'ID',
    direction: 'DESC'
  }]
});

最佳答案

GridView 绑定(bind)到商店。这意味着,如果您的网格可见,并且您将不同的数据集加载到存储中,则 View 将立即反射(reflect)更改。

这就是我解决这个问题的方法:使用相同的数据源创建第二个商店,但没有分页。然后,在加载未分页的数据集之前,将网格上的过滤器应用到第二个存储。

关于模型的注意事项:如果映射名称相同,则无需声明映射。而是声明类型,这对于格式化或网格是否可编辑非常重要。

关于javascript - Extjs - 获取网格上的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549009/

相关文章:

javascript - 按下/按键后获取输入值

javascript - 使用 ng-pattern 禁用 angularjs 中的按钮

javascript - Ext JS - 具有多个值的单元格,带有 "list"组合框

javascript - 了解 ExtJS 框架语法

Extjs 树形面板 : CSS to change default icons (node and leaf)

javascript - shouldComponentUpdate() Prop 不同于 render() Prop

extjs - 以 PNG/PDF/XLS 文件导出 Ext-JS 6 图表

extjs - 如何限制数字字段输入超过两位小数

javascript - ExtJS 4 数据 View 问题

javascript - 访问特定url时自动触发点击事件