如何在一列中为不同的组合框设置不同的商店?
Posted
技术标签:
【中文标题】如何在一列中为不同的组合框设置不同的商店?【英文标题】:How to set different store for different comboboxes in one column? 【发布时间】:2016-12-19 10:28:00 【问题描述】:我有网格与列。在第二列中,我必须使用组合框(例如在第一行和第三行)。如何为他们设置不同的商店? 第二个组合框的值取决于第一个组合框
here is an image
我看到了一个例子,但是有不同的列,而不是行
【问题讨论】:
为什么你需要 2 个独立的商店?您的后端应该能够根据第一个组合值过滤第二个组合的数据,您应该在加载第二个组合时将其作为参数传递。 您能指出一些参考资料吗? 【参考方案1】:这还没有经过测试,但会给你一个想法。使用 cellediting 插件“beforeedit”事件处理程序来获取 combo1 值并加载 combo2。
//beforeedit 组合2的事件处理程序。在触发 cellEditing 之前触发。
beforeedit:function(editor_, e_)
//get combo1 record, then get combo1 value
var rec= this.grid.store.getAt(rowIndexForCombo1);
var cbo1Val = rec.data.COMBO_1;
var cbo2 = e_.column.field || e_.column.editor;
//pass combo 1 value to combo2 proxy as extraParam, then load combo2.
cbo2.store.proxy.extraParams = COMBO1VAL:cbo1Val;
cbo2.store.load();
【讨论】:
【参考方案2】:我认为你可以过滤你的商店,当组合框得到 fucus 时。
听众:
focus : function(...)
store.clearFilter();
store.filterBy(function(item)
return .....;//true or false;
);
【讨论】:
以上是关于如何在一列中为不同的组合框设置不同的商店?的主要内容,如果未能解决你的问题,请参考以下文章