【问题标题】:How to set different store for different comboboxes in one column?如何在一列中为不同的组合框设置不同的商店?
【发布时间】:2016-12-19 10:28:00
【问题描述】:

我有网格与列。在第二列中,我必须使用组合框(例如在第一行和第三行)。如何为他们设置不同的商店? 第二个组合框的值取决于第一个组合框

here is an image

我看到了一个例子,但是有不同的列,而不是行

【问题讨论】:

  • 为什么你需要 2 个独立的商店?您的后端应该能够根据第一个组合值过滤第二个组合的数据,您应该在加载第二个组合时将其作为参数传递。
  • 您能指出一些参考资料吗?

标签: extjs combobox grid store


【解决方案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;
            });
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2019-09-03
      • 2021-01-10
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2019-07-04
      • 2014-11-06
      • 2013-07-18
      • 1970-01-01
      相关资源
      最近更新 更多