将阵列加载在可动的单元格中



更改一个 cell中的值时,我必须在其他单元格中加载 array of values(如下拉)。

我不知道如何将数组加载到单元格中。

我尝试的是:

afterChange: function(changes, source) {
        if(!changes) {
        return;
      }
      $.each(changes, function(index, element) {
       var row = element[0];
       var col = element[1];
       var oldVal = element[2];
       var newVal = element[3];
       if(col==6) {
         tsContainer.setDataAtCell(row, 1, pjtArray);    
       }
      });
    }

在这里我使用了setDataAtCell方法,它将数组加载为字符串(逗号分隔)。

我尝试了

     var arr = [['123'],['dfg'],['678'],['asd']];
     tsContainer.populateFromArray(row, 1, arr);

,但它加载每个单元格中的每个元素。

我必须在一个单元格中显示所有元素作为下拉级。

handentbale 列属性中,我们可以将数组设置为source。我需要这样的东西。

由于数据是动态加载的,所以我必须在afterChange事件中写下此。

请帮助我..

您的猜测是正确的,您需要更改列的属性来修改下拉值。

让我们进行以下初始数据集:

myData = [
    ['source1', 'option1'],
    ['source1', 'option3'],
    ['source2', 'option5'],
    ['source2', 'option7']
],

以及以下下拉值:

selectSource = ['source1','source2'],
source1 = ['option1','option2','option3','option4'],
source2 = ['option5','option6','option7','option8'],

和假设您要根据第1列的值修改第2列的下拉值(如果第1列等于'source1',则第2列的下拉值将为阵列source1,如果它等于'source2',第2列的源将是数组源2):

  1. 使用getCellmeta(行,列)获取单元格的属性
  2. 访问源并为您的新数组更改

参数是当前行,您触发事件后换次, value 是此行的第1列的值:

function setDropDownSource(row, value) {
    var instance = this;
    var cellPropertiesOption = instance.getCellMeta(row,1); // Column 1 is your 2nd column
    if (value == 'source1')
        cellPropertiesOption.source = source1;
    else if (value == 'source2')
        cellPropertiesOption.source = source2;
    else
        cellPropertiesOption.source = null;
}

此功能在换次事件中称为:

$.each(changes, function (index, element) {
    var rowIndex = element[0];
    var columnIndex = element[1];
    var newValue = element[3];
    if (columnIndex == 0) { // Checking if the event has been triggered within the column SourceSelector
        setDropDownSource.call(instance, rowIndex, newValue);
        instance.render();
    }
});

我还添加了一个 AfterloadData 事件,以在加载页面时设置第二列的每个行的源。但是我也想在更改源时清空单元格的当前值。因此,如果要在更改源时需要一个单元格或不为空的单元格,则可以找到该函数的附加参数:

if (!init)
    instance.setDataAtCell(row,1,"");

您可以在此JSfiddle中找到完整的工作示例。

最新更新