ExtJs4 如何在循环中创建动态函数
ExtJs4 How do I create a dynamic function in a loop
我在 Ext 4.2.1 中有一个 MVC 应用程序,我正在使用重新配置创建一个动态网格。它运行良好,但我坚持如何使用 Ext.ux.grid.FiltersFeature 向网格添加过滤器。我看到的所有示例都是硬编码的。
在我的情况下,在用户做出选择之前,我的商店和网格列都不知道。然后,我使用以下函数在 for 循环中动态构建它:
onBuildGrid: function() {
var store = this.getStore('Keys');
var grid = this.getIndexGrid();
var rvabrep = this.getStore('Rvabreps');
var columnModel = [];
var fields = [];
var triggerFn = function() {
this.setValue('');
var store = this.up('tablepanel').store;
store.clearFilter();
};
for (i = 0; i < store.data.items.length; i++) {
dataIndex = store.data.items[i].data.IDX;
text = store.data.items[i].data.IDXDESC;
columnModel.push({
text: text,
dataIndex: dataIndex,
});
fields.push({
name: dataIndex
});
}
rvabrep.model.setFields(fields);
grid.reconfigure(rvabrep, columnModel);
在 push 函数中,我需要添加以下代码,但无法弄清楚如何在函数内为 keyup 侦听器获取变量。OnTriggerClick 函数有效,但由于它是静态的,因此很容易创建变量。
我想我可以对 keyup 功能使用相同的技术,如果我能弄清楚如何做到这一点。
我需要一个JavaScript天才来拯救!! 谢谢!
items: {
xtype: 'trigger',
triggerCls: 'x-form-clear-trigger',
onTriggerClick: triggerFn
flex : 1,
margin: 2,
enableKeyEvents: true,
listeners: {
keyup: function() {
var store = this.up('tablepanel').store;
store.clearFilter();
if (this.value) {
store.filter({
//property needs to be the variable "dataindex"
property : ?this_needs_to_be_a variable?
value : this.value,
anyMatch : false,
caseSensitive : false
});
}
},
buffer: 500
}
}
你能做这样的事情而不是让它成为一个变量吗?
this.up("gridcolumn").dataIndex;
相关文章:
- 如何在javascript中创建动态json对象
- 如何创建动态ajax提交表单
- 如何在javascript中创建动态正则表达式
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 如何在jquery mobile中使用json文件创建动态下拉菜单
- 基于所选下拉列表值创建动态复选框
- 使用推动创建动态对象
- 在浏览器窗口中创建动态灵活的分割标记
- 将字符串与integer连接,用作jquery中的变量(创建动态变量)
- 创建动态javascript对象
- 如何使用指令属性值创建动态模板
- 使用 JavaScript 创建动态下拉列表
- 如何在创建动态 HTML 页面时使用日期选择器
- 使用javascript中的append创建动态下拉列表
- Jquery - 创建动态名称选择器
- 如何根据查询字符串值创建动态超链接
- 使用javascript创建动态多维关联数组
- 使用javascript创建动态二级下拉列表
- 在JavaScript中创建动态绑定
- 在JS中创建动态对象