2015-07-29 4 views
0

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

Например,

 { 
      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, я хочу, чтобы изменить параметры ВЫБ.2 из state_id. Я знаю, как сделать эту работу только с select2, но я не могу понять, как заставить ее работать с помощью handsontable.

У меня есть изменение select2Options in 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? 

      }); 
      } 

     } 

     }, 

ответ

0

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

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

получить свойство клеток:

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

обновление источник Select2:

cellProperties['select2Options'].data = [states list]; 
+0

hot.getCellMeta (строка, столбец) .select2Options.data = [состояние данных]; Это сработало. getCellMeta - это метод, который я должен назвать! Благодаря! – rjvim

+0

Предлагаемое решение не работает в следующей ситуации: Предположим, я выбрал «Австралию» в первой строке, он показывает состояния в Австралии в столбце состояний соответствующей строки. В другом ряду ниже этого, если я выбрал «Индию», тогда проблема начнется, данные состояний первой строки, в которых мы выбрали «Австралия», также изменяются в список штатов «Индия». Короче говоря, select2Options меняются для всех строк. – rjvim