Handsontableのカスケードドロップダウン

アサフデビッド

条件が別のセルの内容によって決定されている間に、ドロップダウンタイプの列を作成しようとしています。

列の設定は関数によって作成されます。カスケードドロップダウンである必要がある場合、ソースも関数です。

すべてが正常に機能しており、セルをダブルクリックすると関数が呼び出されます。関数は実行中であり、正しい配列を返します。ただし、ドロップダウンは開きません。

JSのショートバージョン:

data: Object.keys(data[0])[i],
type: "dropdown",
source: function getDropdownList() {
          // function build the array
          return dropdownOptions;
        }

JSのロングバージョン:

var myData = Handsontable.helper.createSpreadsheetData(5, 5);
var container = document.getElementById('table1');
var settings1 = {
   data: myData,
   columns: buildTypeObject()
}

var table1 = new Handsontable(container, settings1);

function buildTypeObject() {
  var typeObject = [];
  for (var i = 0; i < myData.length; i++) {
    if (i=1) {
        typeObject[i] = {
            data: ("column " + i),
            type: "dropdown",
            source: function getDropdownList() {
                var dropdownOptions = [];
                var selectedRow = table1.getSelected()[0];
                var selectedColumn = table1.getSelected()[1];
                var previousCell = table1.getDataAtCell(selectedRow, selectedColumn-1);
                if (previousCell == "A1") {
                    dropdownOptions = ["AB1","BB1"];
                } else {
                    dropdownOptions = ["ZZ1", "ZZ2", "ZZ3", "ZZ4"];                        
                }
                console.log(dropdownOptions);
                return dropdownOptions;            
            }
        }                
    } else {
        typeObject[i] = {
            data: ("column " + i) 
        }            
    }
 };
 return typeObject;
};
アサフデビッド

私はこのsetCellMeta(row, col, key, value)方法でこれを修正することができました

したがって、JSは次のようになります。

var myData = Handsontable.helper.createSpreadsheetData(5, 5);
var container = document.getElementById('table1');
var settings1 = {
   data: myData,
   columns: buildTypeObject()
}

var table1 = new Handsontable(container, settings1);

function buildTypeObject() {
  var typeObject = [];
  for (var i = 0; i < myData.length; i++) {
    if (i=1) {
        typeObject[i] = {
            data: ("column " + i),
            type: "dropdown",
            source: function getDropdownList() {
                var dropdownOptions = [];
                var selectedRow = table1.getSelected()[0];
                var selectedColumn = table1.getSelected()[1];
                var previousCell = table1.getDataAtCell(selectedRow, selectedColumn-1);
                if (previousCell == "A1") {
                    dropdownOptions = ["AB1","BB1"];
                } else {
                    dropdownOptions = ["ZZ1", "ZZ2", "ZZ3", "ZZ4"];                        
                }
                console.log(dropdownOptions);
                //return dropdownOptions;
                setCellMeta(selectedRow, selectedCol, "source", dropdownOptions);            
            }
        }                
    } else {
        typeObject[i] = {
            data: ("column " + i) 
        }            
    }

唯一の問題は、ドロップダウンリストが最初のクリックで開かないことです。ただし、2回目のクリックで開くか、セルを編集するとき(任意の文字を入力するか消去する)に開きます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

mvcドロップダウンのカスケード人口

分類Dev

Aureliaの依存/カスケードドロップダウン

分類Dev

複数のカスケードドロップダウン

分類Dev

カスケード/依存ドロップダウンの問題

分類Dev

列プロパティからのHandsontableドロップダウンソース

分類Dev

Ajaxカスケードドロップダウンリスト

分類Dev

AngularFormArrayのカスケードドロップダウンリスト

分類Dev

カスケード選択/ドロップダウン

分類Dev

ドロップダウンカスケードMVC2

分類Dev

依存/カスケードドロップダウン

分類Dev

カスケードドロップダウンを更新

分類Dev

Jsonカスケードドロップダウン

分類Dev

Angularjsカスケードドロップダウン

分類Dev

Javascriptカスケードドロップダウン読み込みの問題

分類Dev

ノックアウト:カスケードドロップダウン、2番目のドロップダウンで選択されたテキスト

分類Dev

3つのカスケードドロップダウンをノックアウトします

分類Dev

ASP.netカスケードドロップダウンリスト

分類Dev

ドロップダウンの配列(Handsontable)

分類Dev

カスケードドロップダウンかみそりページ

分類Dev

ajaxを使用して2つのドロップダウンボックスをカスケードする

分類Dev

ページの読み込み時のカスケードドロップダウンの変更

分類Dev

PHPとCatalystを使用したJqueryカスケードドロップダウン

分類Dev

ajaxPhpとmysqlを使用したカスケードドロップダウン

分類Dev

カスケードドロップダウンが入力されない

分類Dev

asp.netのカスケードドロップダウンリストのデフォルト値

分類Dev

Angular 6でカスケードドロップダウン(国と州のリスト)を作成する方法

分類Dev

Angularを使用したASP.NETCoreでのカスケードドロップダウンリスト

分類Dev

剣道MVCカスケードドロップダウンリストの問題

分類Dev

Blazor-データを入力しないINTIDのカスケードドロップダウン

Related 関連記事

  1. 1

    mvcドロップダウンのカスケード人口

  2. 2

    Aureliaの依存/カスケードドロップダウン

  3. 3

    複数のカスケードドロップダウン

  4. 4

    カスケード/依存ドロップダウンの問題

  5. 5

    列プロパティからのHandsontableドロップダウンソース

  6. 6

    Ajaxカスケードドロップダウンリスト

  7. 7

    AngularFormArrayのカスケードドロップダウンリスト

  8. 8

    カスケード選択/ドロップダウン

  9. 9

    ドロップダウンカスケードMVC2

  10. 10

    依存/カスケードドロップダウン

  11. 11

    カスケードドロップダウンを更新

  12. 12

    Jsonカスケードドロップダウン

  13. 13

    Angularjsカスケードドロップダウン

  14. 14

    Javascriptカスケードドロップダウン読み込みの問題

  15. 15

    ノックアウト:カスケードドロップダウン、2番目のドロップダウンで選択されたテキスト

  16. 16

    3つのカスケードドロップダウンをノックアウトします

  17. 17

    ASP.netカスケードドロップダウンリスト

  18. 18

    ドロップダウンの配列(Handsontable)

  19. 19

    カスケードドロップダウンかみそりページ

  20. 20

    ajaxを使用して2つのドロップダウンボックスをカスケードする

  21. 21

    ページの読み込み時のカスケードドロップダウンの変更

  22. 22

    PHPとCatalystを使用したJqueryカスケードドロップダウン

  23. 23

    ajaxPhpとmysqlを使用したカスケードドロップダウン

  24. 24

    カスケードドロップダウンが入力されない

  25. 25

    asp.netのカスケードドロップダウンリストのデフォルト値

  26. 26

    Angular 6でカスケードドロップダウン(国と州のリスト)を作成する方法

  27. 27

    Angularを使用したASP.NETCoreでのカスケードドロップダウンリスト

  28. 28

    剣道MVCカスケードドロップダウンリストの問題

  29. 29

    Blazor-データを入力しないINTIDのカスケードドロップダウン

ホットタグ

アーカイブ