【发布时间】:2013-09-07 13:40:45
【问题描述】:
下面是 Ext.grid.Panel 列的渲染器。假设 contactStore 中有 2,000 个值,我只关心基于 id 的记录名称(在本例中为 value 参数),而我的网格中只有 25 行/记录我所在的页面。如何动态获取存储,以便获取网格列 id 的相关关联记录(基于外键),而不是加载所有 2,000 条记录?有没有办法加载商店,然后在回调中,以某种方式让这个“渲染器”函数在回调成功后显示值?
columns: [{
...
}, {
header: 'Contact Name',
flex: 1,
sortable: true,
dataIndex: 'contact_id',
renderer: function(value) {
var contactStore = Ext.StoreManager.lookup('Contacts');
return contactStore.getById(value).get('full_name');
}
}, {
【问题讨论】:
-
我认为您将不得不破解渲染器或表格视图。在第一种情况下,这可能意味着联系人存储将在每次页面加载时发出 25 个请求;你考虑过吗?在后一种情况下,您是否有办法让联系人存储一次加载 25 个随机联系人?
-
我已经了解了几种不同的方法。 (1) 拥有一个单独的存储并根据页面中的数据加载该存储 (2) 将名称作为附加字段加载到网格存储中 (3) 使用关联模型并获取我们关心的记录的名称关联商店........虽然我找不到其他商店的例子......你会推荐什么 Rixo?
-
如果您可以控制服务器,我肯定会将名称字段添加到网格模型中。这将为您节省大量请求,并使您的代码更简单。因此更稳定。
标签: extjs dynamic extjs4 store renderer