如何在一列中为不同的组合框设置不同的商店?

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;
        );

【讨论】:

以上是关于如何在一列中为不同的组合框设置不同的商店?的主要内容,如果未能解决你的问题,请参考以下文章

合并组合框 1 列中的 2 列表格数据

如何通过代码填充多列组合框?

如何让组合框选择与 ExtJS6 中显示的值不同的值?

如何根据分组将字符串组合在一列中

如何在 QtRuby 的第一列单元格中添加组合框?

通过在一列中添加不同的数据从一个创建两个数据帧