Handsontable Select2 Зависимые выпадающие списки

У меня есть два раскрывающихся списка select2, и я хочу изменить параметры второго раскрывающегося списка в зависимости от первого раскрывающегося списка.

Например,

        {
          data: 'country_id',
          editor: 'select2', 
          renderer: customDropdownRenderer,
          select2Options: { 
                  data: {!! $production_units !!} ,
                  dropdownAutoWidth: true,
          }
        },
        {
          data: 'state_id',
          editor: 'select2', 
          renderer: customDropdownRenderer,
          select2Options: { 
                  data: [],
                  dropdownAutoWidth: true,
                  width: 'resolve'
          }
        },

В зависимости от country_id я хочу изменить параметры select2 для state_id. Я знаю, как заставить это работать только с select2, но я не могу понять, как заставить его работать с handsontable.

У меня есть изменение select2Options в afterChange, но как это сделать?

  afterChange: function (change, source) {

        if(change)
        {

          if(change[0][1] == 'country_id')
          {
            $.get("/api/states?country="+change[0][3], function(data){

                 //What should be done here?

            });
          }

        }

      },

person rjvim    schedule 29.07.2015    source источник


Ответы (1)


Вы получаете все штаты для этой страны. Убедитесь, что список состояний имеет тот же формат, что и select2.

Затем прокрутите список столбцов и определите зависимый столбец для текущего столбца, который был изменен.

Получить свойства ячейки:

var cellProperties = instance.getCellMeta(rowIndex, dependentColumnIndex);

Обновите источник select2:

cellProperties['select2Options'].data = [states list];
person mpusarla    schedule 29.07.2015
comment
hot.getCellMeta(row,col).select2Options.data = [указывает данные]; Это сработало. getCellMeta — это метод, который я должен вызвать! Спасибо! - person rjvim; 30.07.2015
comment
Предлагаемое решение не работает в следующем сценарии: допустим, я выбрал Австралию в первой строке, в ней отображаются штаты Австралии в столбце штатов соответствующей строки. В другой строке под ней, если я выбрал Индию, то проблема начинается. Данные о штатах первой строки, в которой мы выбрали Австралию, также меняются на список штатов Индии. Короче говоря, select2Options меняются для всех строк. - person rjvim; 05.09.2015